home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / AIncludes / OCEAuthDir.a < prev    next >
Encoding:
Text File  |  1997-08-12  |  202.1 KB  |  5,087 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        OCEAuthDir.a
  3. ;
  4. ;    Contains:    Apple Open Collaboration Environment Authentication Interfaces.
  5. ;
  6. ;    Version:    Technology:    AOCE Toolbox 1.02
  7. ;                Release:    Universal Interfaces 3.0.1
  8. ;
  9. ;    Copyright:    © 1994-1997 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__OCEAUTHDIR__') = 'UNDEFINED' THEN
  19. __OCEAUTHDIR__ SET 1
  20.  
  21.     IF &TYPE('__APPLETALK__') = 'UNDEFINED' THEN
  22.     include 'AppleTalk.a'
  23.     ENDIF
  24.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  25.     include 'Files.a'
  26.     ENDIF
  27.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  28.     include 'OSUtils.a'
  29.     ENDIF
  30.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  31.     include 'Types.a'
  32.     ENDIF
  33.  
  34.     IF &TYPE('__OCE__') = 'UNDEFINED' THEN
  35.     include 'OCE.a'
  36.     ENDIF
  37.  
  38. ; ****************************************************************************
  39.  
  40. kRC4KeySizeInBytes                EQU        8                    ; size of an RC4 key 
  41. kRefNumUnknown                    EQU        0
  42.  
  43. kEnumDistinguishedNameBit        EQU        0
  44. kEnumAliasBit                    EQU        1
  45. kEnumPseudonymBit                EQU        2
  46. kEnumDNodeBit                    EQU        3
  47. kEnumInvisibleBit                EQU        4
  48. ;  Values of DirEnumChoices 
  49.  
  50. kEnumDistinguishedNameMask        EQU        $00000001
  51. kEnumAliasMask                    EQU        $00000002
  52. kEnumPseudonymMask                EQU        $00000004
  53. kEnumDNodeMask                    EQU        $00000008
  54. kEnumInvisibleMask                EQU        $00000010
  55. kEnumAllMask                    EQU        $0000001F
  56. ; typedef unsigned long                 DirEnumChoices
  57.  
  58. ;  Values of DirSortOption 
  59.  
  60. kSortByName                        EQU        0
  61. kSortByType                        EQU        1
  62.  
  63. ;  Values of DirSortDirection 
  64.  
  65. kSortForwards                    EQU        0
  66. kSortBackwards                    EQU        1
  67. ;  Values of DirMatchWith 
  68.  
  69. kMatchAll                        EQU        0
  70. kExactMatch                        EQU        1
  71. kBeginsWith                        EQU        2
  72. kEndingWith                        EQU        3
  73. kContaining                        EQU        4
  74. ; typedef unsigned char                 DirMatchWith
  75.  
  76.  
  77. kCurrentOCESortVersion            EQU        1
  78. ;   Access controls are implemented on three levels:
  79. ; *      DNode, Record, and Attribute Type levels
  80. ; *  Some access control bits apply to the container itself, and some apply to its contents.
  81. ; *
  82. ; *  The Catalog Toolbox supports six functions.  These calls are:
  83. ; *  DSGetDNodeAccessControl : to get Access Controls at the DNode level
  84. ; *    DSGetRecordAccessControl  : to get Access Controls at the record level
  85. ; *  DSGetAttributeAccessControl : to get Access Privileges at the attribute type level
  86. ; * 
  87. ; *  The GetXXXAccessControl calls will return access control masks for various categories
  88. ; *  of users.  Please refer to the access control document for a description of the
  89. ; *  categories of users.  In general these are:
  90. ; *      ThisRecordOwner         - means the identity of the record itself
  91. ; *      Friends                  - means any one of the assigned friends for the record
  92. ; *      AuthenticatedInDNode     - means any valid user that is an authenticated entity
  93. ; *          in the DNode in which this record is located
  94. ; *      AuthenticatedInDirectory - means any valid authenticated catalog user
  95. ; *      Guest                      - means an unauthenticated user.
  96. ; *  Bit masks for various permitted access controls are defined below.
  97. ; *
  98. ; *  GetXXXAccessControl calls will return access control masks for various categories of
  99. ; *  users for this record. In addition they also return the level of access controls
  100. ; *  that the user (who is making the GetXXXAccessControl call) has for the DNode,
  101. ; *  record, or attribute type.
  102. ; *
  103. ; *  For records, the access control granted will be minimum of the DNode access
  104. ; *  control and record access control masks.  For example, to add an attribute type to a
  105. ; *  record, a user must have access control kCreateAttributeTypes at the record and
  106. ; *  DNode levels.  Similarly, at the attribute type level, access controls will be the
  107. ; *  minimum of the DNode, record, and attribute type access controls.
  108. ; *
  109. ; *  
  110.  
  111. ;  access privileges bit numbers 
  112.  
  113. kSeeBit                            EQU        0
  114. kAddBit                            EQU        1
  115. kDeleteBit                        EQU        2
  116. kChangeBit                        EQU        3
  117. kRenameBit                        EQU        4
  118. kChangePrivsBit                    EQU        5
  119. kSeeFoldersBit                    EQU        6
  120. ;  Values of AccessMask 
  121.  
  122. kSeeMask                        EQU        $00000001
  123. kAddMask                        EQU        $00000002
  124. kDeleteMask                        EQU        $00000004
  125. kChangeMask                        EQU        $00000008
  126. kRenameMask                        EQU        $00000010
  127. kChangePrivsMask                EQU        $00000020
  128. kSeeFoldersMask                    EQU        $00000040
  129.  
  130. kAllPrivs                        EQU        $0000007F
  131. kNoPrivs                        EQU        0
  132. ;
  133. ;kSupportsDNodeNumberBit:
  134. ;If this bit is set, a DNode can be referenced using DNodeNumbers. 
  135. ;RecordLocationInfo can be specified using DNodeNumber and PathName component can be nil. 
  136. ;If this bit is not set, a DNode can be referenced only by PathName to the DNode. In the 
  137. ;later case DNodeNumber component inside record location info must be set to zero.
  138. ;
  139. ;kSupportsRecordCreationIDBit:
  140. ;If this bit is set, a record can be referenced by specifying CreationID 
  141. ;in most catalog manager calls. If this bit is not set recordName and recordType are 
  142. ;required in the recordID specification for all catalog manager calls.
  143. ;
  144. ;kSupportsAttributeCreationIDBit:
  145. ;If this bit is set, an attribute value can be obtained by specifying it's 
  146. ;CreationID in Lookup call staring point and also can be used in operations 
  147. ;like DeleteAttributeValue and ChangeAttributeValue an Attribute can be 
  148. ;specified by AttributeType and CreationID.
  149. ;
  150. ;*************************************************************************
  151. ;Implicit assumption with creationID's and dNodeNumbers are, when supported
  152. ;they are persistent and will preserved across boots and life of the system.
  153. ;*************************************************************************
  154. ;
  155. ;Following three bits are for determining the sort order in enumeration.
  156. ;kSupportsMatchAllBit:
  157. ;If this bit is set, enumeration of all the records is supported
  158. ;
  159. ;kSupportsBeginsWithBit:
  160. ;If this bit is set, enumeration of records matching prefix (e.g. Begin with abc)
  161. ;is supported
  162. ;
  163. ;kSupportsExactMatchBit:
  164. ;If this bit is set, existence of a record matching exact matchNameString and recordType
  165. ;is supported.
  166. ;
  167. ;kSupportsEndsWithBit:
  168. ;If this bit is set, enumeration of records matching suffix (e.g. end with abc)
  169. ;is supported.
  170. ;
  171. ;kSupportsContainsBit:
  172. ;If this bit is set, enumeration of records containing a matchNameString (e.g. containing abc)
  173. ;is supported
  174. ;
  175. ;
  176. ;Implicit assumption in all these is, a record type can be specified either as one of the above or
  177. ;a type list(more then one) to match exact type.
  178. ;The Following four bits will indicate sort ordering in enumeration.
  179. ;
  180. ;kSupportsOrderedEnumerationBit:
  181. ;If this bit is set, Enumerated records or in some order possibly in name order.
  182. ;
  183. ;kCanSupportNameOrderBit:
  184. ;If this is set, catalog will support sortbyName option in Enumerate.
  185. ;
  186. ;kCanSupportTypeOrderBit:
  187. ;If this bit is set, catalog will support sortbyType option in enumearte.
  188. ;
  189. ;kSupportSortBackwardsBit:
  190. ;If this bit is set, catalog supports backward sorting.
  191. ;
  192. ;kSupportIndexRatioBit:
  193. ;If this bit is set, it indicates that enumeration will return approximate position
  194. ;of a record (percentile) among all records.
  195. ;
  196. ;kSupportsEnumerationContinueBit:
  197. ;If this bit is set, catalog supports enumeration continue.
  198. ;
  199. ;kSupportsLookupContinueBit:
  200. ;If this bit is set, catalog supports lookup continue.
  201. ;
  202. ;kSupportsEnumerateAttributeTypeContinueBit:
  203. ;If this bit is set, catalog supports EnumerateAttributeType continue.
  204. ;
  205. ;kSupportsEnumeratePseudonymContinueBit:
  206. ;If this bit is set, catalog supports EnumeratePseudonym continue.
  207. ;
  208. ;kSupportsAliasesBit:
  209. ;If this bit is set, catalog supports create/delte/enumerate 
  210. ;of Alias Records.
  211. ;
  212. ;kSupportPseudonymBit: 
  213. ;If this bit is set, catalog supports create/delte/enumerate of 
  214. ;pseudonyms for a record.
  215. ;
  216. ;kSupportsPartialPathNameBit:
  217. ;If this bit is set, catalog nodes can be specified using DNodeNumber of a 
  218. ;intermediate DNode and a partial name starting from that DNode to the intended 
  219. ;DNode.
  220. ;
  221. ;kSupportsAuthenticationBit:
  222. ;If this bit is set, catalog supports authentication manager calls.
  223. ;
  224. ;kSupportsProxiesBit:
  225. ;If this bit is set, catalog supports proxy related calls in authentication manager. 
  226. ;
  227. ;kSupportsFindRecordBit:
  228. ;If this bit is set, catalog supports find record call.
  229. ;
  230. ;Bits and corresponding masks are as defined below.
  231. ;
  232.  
  233.  
  234. kSupportsDNodeNumberBit            EQU        0
  235. kSupportsRecordCreationIDBit    EQU        1
  236. kSupportsAttributeCreationIDBit    EQU        2
  237. kSupportsMatchAllBit            EQU        3
  238. kSupportsBeginsWithBit            EQU        4
  239. kSupportsExactMatchBit            EQU        5
  240. kSupportsEndsWithBit            EQU        6
  241. kSupportsContainsBit            EQU        7
  242. kSupportsOrderedEnumerationBit    EQU        8
  243. kCanSupportNameOrderBit            EQU        9
  244. kCanSupportTypeOrderBit            EQU        10
  245. kSupportSortBackwardsBit        EQU        11
  246. kSupportIndexRatioBit            EQU        12
  247. kSupportsEnumerationContinueBit    EQU        13
  248. kSupportsLookupContinueBit        EQU        14
  249. kSupportsEnumerateAttributeTypeContinueBit EQU 15
  250. kSupportsEnumeratePseudonymContinueBit EQU 16
  251. kSupportsAliasesBit                EQU        17
  252. kSupportsPseudonymsBit            EQU        18
  253. kSupportsPartialPathNamesBit    EQU        19
  254. kSupportsAuthenticationBit        EQU        20
  255. kSupportsProxiesBit                EQU        21
  256. kSupportsFindRecordBit            EQU        22
  257. ;  values of DirGestalt 
  258.  
  259. kSupportsDNodeNumberMask        EQU        $00000001
  260. kSupportsRecordCreationIDMask    EQU        $00000002
  261. kSupportsAttributeCreationIDMask EQU    $00000004
  262. kSupportsMatchAllMask            EQU        $00000008
  263. kSupportsBeginsWithMask            EQU        $00000010
  264. kSupportsExactMatchMask            EQU        $00000020
  265. kSupportsEndsWithMask            EQU        $00000040
  266. kSupportsContainsMask            EQU        $00000080
  267. kSupportsOrderedEnumerationMask    EQU        $00000100
  268. kCanSupportNameOrderMask        EQU        $00000200
  269. kCanSupportTypeOrderMask        EQU        $00000400
  270. kSupportSortBackwardsMask        EQU        $00000800
  271. kSupportIndexRatioMask            EQU        $00001000
  272. kSupportsEnumerationContinueMask EQU    $00002000
  273. kSupportsLookupContinueMask        EQU        $00004000
  274. kSupportsEnumerateAttributeTypeContinueMask EQU $00008000
  275. kSupportsEnumeratePseudonymContinueMask EQU $00010000
  276. kSupportsAliasesMask            EQU        $00020000
  277. kSupportsPseudonymsMask            EQU        $00040000
  278. kSupportsPartialPathNamesMask    EQU        $00080000
  279. kSupportsAuthenticationMask        EQU        $00100000
  280. kSupportsProxiesMask            EQU        $00200000
  281. kSupportsFindRecordMask            EQU        $00400000
  282.  
  283. ;  Values of AuthLocalIdentityOp 
  284.  
  285. kAuthLockLocalIdentityOp        EQU        1
  286. kAuthUnlockLocalIdentityOp        EQU        2
  287. kAuthLocalIdentityNameChangeOp    EQU        3
  288. ;  Values of AuthLocalIdentityLockAction 
  289.  
  290. kAuthLockPending                EQU        1
  291. kAuthLockWillBeDone                EQU        2
  292.  
  293. ;  Values of AuthNotifications 
  294.  
  295. kNotifyLockBit                    EQU        0
  296. kNotifyUnlockBit                EQU        1
  297. kNotifyNameChangeBit            EQU        2
  298.  
  299. kNotifyLockMask                    EQU        $00000001
  300. kNotifyUnlockMask                EQU        $00000002
  301. kNotifyNameChangeMask            EQU        $00000004
  302.  
  303. kPersonalDirectoryFileCreator    EQU        'kl03'
  304. kPersonalDirectoryFileType        EQU        'pabt'
  305. kBusinessCardFileType            EQU        'bust'
  306. kDirectoryFileType                EQU        'dirt'
  307. kDNodeFileType                    EQU        'dnod'
  308. kDirsRootFileType                EQU        'drtt'
  309. kRecordFileType                    EQU        'rcrd'
  310. ; typedef unsigned short                 DirSortOption
  311.  
  312. ; typedef unsigned short                 DirSortDirection
  313.  
  314. ; typedef unsigned long                 AccessMask
  315.  
  316. ; typedef unsigned long                 DirGestalt
  317.  
  318. ; typedef unsigned long                 AuthLocalIdentityOp
  319.  
  320. ; typedef unsigned long                 AuthLocalIdentityLockAction
  321.  
  322. ; typedef unsigned long                 AuthNotifications
  323.  
  324. DNodeID                    RECORD 0
  325. dNodeNumber                 ds.l    1                ; offset: $0 (0)        ;  dNodenumber  
  326. reserved1                 ds.l    1                ; offset: $4 (4)
  327. name                     ds.l    1                ; offset: $8 (8)
  328. reserved2                 ds.l    1                ; offset: $C (12)
  329. sizeof                     EQU *                    ; size:   $10 (16)
  330.                         ENDR
  331. DirEnumSpec                RECORD 0
  332. enumFlag                 ds.l    1                ; offset: $0 (0)
  333. indexRatio                 ds.w    1                ; offset: $4 (4)        ;  Approx Record Position between 1 and 100 If supported, 0 If not supported 
  334. recordIdentifier         ds        LocalRecordID    ; offset: $6 (6)
  335.                          ORG 6
  336. dNodeIdentifier             ds        DNodeID            ; offset: $6 (6)
  337. sizeof                     EQU *                    ; size:   $16 (22)
  338.                         ENDR
  339. DirMetaInfo                RECORD 0
  340. info                     ds.l    4                ; offset: $0 (0)
  341. sizeof                     EQU *                    ; size:   $10 (16)
  342.                         ENDR
  343. SLRV                    RECORD 0
  344. script                     ds.w    1                ; offset: $0 (0)        ;    Script code in which entries are sorted 
  345. language                 ds.w    1                ; offset: $2 (2)        ;    Language code in which entries are sorted 
  346. regionCode                 ds.w    1                ; offset: $4 (4)        ;    Region code in which entries are sorted 
  347. version                     ds.w    1                ; offset: $6 (6)        ;   version of oce sorting software 
  348. sizeof                     EQU *                    ; size:   $8 (8)
  349.                         ENDR
  350. ;  Catalog types and operations 
  351. ;  unique identifier for an identity 
  352. ; typedef unsigned long                 AuthIdentity
  353.  
  354. ;  Umbrella LocalIdentity 
  355. ; typedef AuthIdentity                     LocalIdentity
  356.  
  357. ;  A DES key is 8 bytes of data 
  358. DESKey                    RECORD 0
  359. desA                     ds.l    1                ; offset: $0 (0)
  360. desB                     ds.l    1                ; offset: $4 (4)
  361. sizeof                     EQU *                    ; size:   $8 (8)
  362.                         ENDR
  363. RC4Key                    RECORD 0
  364. elements                 ds.b    8
  365. sizeof                     EQU *                    ; size:   $8 (8)
  366.                         ENDR
  367.  
  368.  
  369. ; typedef unsigned long                 AuthKeyType
  370.  
  371. ;  key type followed by its data 
  372. AuthKey                    RECORD 0
  373. keyType                     ds.l    1                ; offset: $0 (0)
  374. des                         ds        DESKey            ; offset: $4 (4)
  375.                          ORG 4
  376. rc4                         ds        RC4Key            ; offset: $4 (4)
  377. sizeof                     EQU *                    ; size:   $C (12)
  378.                         ENDR
  379. ; typedef struct AuthKey *                AuthKeyPtr
  380.  
  381.  
  382.  
  383. ; typedef AuthParamBlock *                AuthParamBlockPtr
  384.  
  385. ;  Fix parameter passing convention (#1274062) ggs, 8-7-95 
  386. ; *****************************************************************************
  387. ;
  388. ;
  389. ;        Authentication Manager operations 
  390. ;
  391. ;****************************************************************************
  392.  
  393. ;kAuthResolveCreationID:
  394. ;userRecord will contain the user information whose creationID has to be
  395. ;returned. A client must make this call when he does not know the creaitionID.
  396. ;The creationID must be set to nil before making the call. The server will attempt
  397. ;to match the recordid's in the data base which match the user name and
  398. ;type in the record.  Depending on number of matchings, following
  399. ;results will be returned.
  400. ;Exactly One Match : CreationID in RecordID and also in buffer (if buffer is given)
  401. ;totalMatches = actualMatches = 1.
  402. ;> 1 Match:
  403. ;    Buffer is Large Enough:
  404. ;    totalMatches = actualMatches
  405. ;    Buffer will contain all the CIDs, kOCEAmbiguousMatches error.
  406. ;> 1 Match:
  407. ;    Buffer is not Large Enough:
  408. ;    totalMatches > actualMatches
  409. ;    Buffer will contain all the CIDs (equal to actualMatches), daMoreDataError error.
  410. ;0 Matches:
  411. ; kOCENoSuchRecord error
  412. ;
  413.  
  414. AuthResolveCreationIDPB    RECORD 0
  415. qLink                     ds.l    1                ; offset: $0 (0)
  416. reserved1                 ds.l    1                ; offset: $4 (4)
  417. reserved2                 ds.l    1                ; offset: $8 (8)
  418. ioCompletion             ds.l    1                ; offset: $C (12)
  419. ioResult                 ds.w    1                ; offset: $10 (16)
  420. saveA5                     ds.l    1                ; offset: $12 (18)
  421. reqCode                     ds.w    1                ; offset: $16 (22)
  422. reserved                 ds.l    2                ; offset: $18 (24)
  423. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  424. dsRefNum                 ds.w    1                ; offset: $24 (36)
  425. callID                     ds.l    1                ; offset: $26 (38)
  426. identity                 ds.l    1                ; offset: $2A (42)
  427. gReserved1                 ds.l    1                ; offset: $2E (46)
  428. gReserved2                 ds.l    1                ; offset: $32 (50)
  429. gReserved3                 ds.l    1                ; offset: $36 (54)
  430. clientData                 ds.l    1                ; offset: $3A (58)
  431. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  432. bufferLength             ds.l    1                ; offset: $42 (66)        ;   --> Buffer Size to hold duplicate Info 
  433. buffer                     ds.l    1                ; offset: $46 (70)        ;   --> Buffer  to hold duplicate Info 
  434. totalMatches             ds.l    1                ; offset: $4A (74)        ;  <--  Total Number of matching names found 
  435. actualMatches             ds.l    1                ; offset: $4E (78)        ;  <--  Number of matches returned in the buffer 
  436. sizeof                     EQU *                    ; size:   $52 (82)
  437.                         ENDR
  438. ;kAuthBindSpecificIdentity:
  439. ;userRecord will contain the user information whose identity has to be
  440. ;verified. userKey will contain the userKey. An Identity is returned which
  441. ;binds the key and the userRecord. The identity returned can be used in the 'identity'
  442. ;field in the header portion (AuthParamHeader) for authenticating the Catalog and
  443. ;Authentication manager calls.
  444. ;
  445.  
  446. AuthBindSpecificIdentityPB RECORD 0
  447. qLink                     ds.l    1                ; offset: $0 (0)
  448. reserved1                 ds.l    1                ; offset: $4 (4)
  449. reserved2                 ds.l    1                ; offset: $8 (8)
  450. ioCompletion             ds.l    1                ; offset: $C (12)
  451. ioResult                 ds.w    1                ; offset: $10 (16)
  452. saveA5                     ds.l    1                ; offset: $12 (18)
  453. reqCode                     ds.w    1                ; offset: $16 (22)
  454. reserved                 ds.l    2                ; offset: $18 (24)
  455. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  456. dsRefNum                 ds.w    1                ; offset: $24 (36)
  457. callID                     ds.l    1                ; offset: $26 (38)
  458. identity                 ds.l    1                ; offset: $2A (42)
  459. gReserved1                 ds.l    1                ; offset: $2E (46)
  460. gReserved2                 ds.l    1                ; offset: $32 (50)
  461. gReserved3                 ds.l    1                ; offset: $36 (54)
  462. clientData                 ds.l    1                ; offset: $3A (58)
  463. userIdentity             ds.l    1                ; offset: $3E (62)        ;  <--  binding identity 
  464. userRecord                 ds.l    1                ; offset: $42 (66)        ;   --> OCE name(Record) of the user 
  465. userKey                     ds.l    1                ; offset: $46 (70)        ;   --> OCE Key for the user 
  466. sizeof                     EQU *                    ; size:   $4A (74)
  467.                         ENDR
  468. ;kAuthUnbindSpecificIdentity:
  469. ;This call will unbind the userRecord and key which were bind earlier.
  470. ;
  471.  
  472. AuthUnbindSpecificIdentityPB RECORD 0
  473. qLink                     ds.l    1                ; offset: $0 (0)
  474. reserved1                 ds.l    1                ; offset: $4 (4)
  475. reserved2                 ds.l    1                ; offset: $8 (8)
  476. ioCompletion             ds.l    1                ; offset: $C (12)
  477. ioResult                 ds.w    1                ; offset: $10 (16)
  478. saveA5                     ds.l    1                ; offset: $12 (18)
  479. reqCode                     ds.w    1                ; offset: $16 (22)
  480. reserved                 ds.l    2                ; offset: $18 (24)
  481. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  482. dsRefNum                 ds.w    1                ; offset: $24 (36)
  483. callID                     ds.l    1                ; offset: $26 (38)
  484. identity                 ds.l    1                ; offset: $2A (42)
  485. gReserved1                 ds.l    1                ; offset: $2E (46)
  486. gReserved2                 ds.l    1                ; offset: $32 (50)
  487. gReserved3                 ds.l    1                ; offset: $36 (54)
  488. clientData                 ds.l    1                ; offset: $3A (58)
  489. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity to be deleted 
  490. sizeof                     EQU *                    ; size:   $42 (66)
  491.                         ENDR
  492.  
  493. ;kAuthGetSpecificIdentityInfo:
  494. ;This call will return the userRecord for the given identity. Note: key is not
  495. ;returned because this would compromise security.
  496. ;
  497.  
  498. AuthGetSpecificIdentityInfoPB RECORD 0
  499. qLink                     ds.l    1                ; offset: $0 (0)
  500. reserved1                 ds.l    1                ; offset: $4 (4)
  501. reserved2                 ds.l    1                ; offset: $8 (8)
  502. ioCompletion             ds.l    1                ; offset: $C (12)
  503. ioResult                 ds.w    1                ; offset: $10 (16)
  504. saveA5                     ds.l    1                ; offset: $12 (18)
  505. reqCode                     ds.w    1                ; offset: $16 (22)
  506. reserved                 ds.l    2                ; offset: $18 (24)
  507. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  508. dsRefNum                 ds.w    1                ; offset: $24 (36)
  509. callID                     ds.l    1                ; offset: $26 (38)
  510. identity                 ds.l    1                ; offset: $2A (42)
  511. gReserved1                 ds.l    1                ; offset: $2E (46)
  512. gReserved2                 ds.l    1                ; offset: $32 (50)
  513. gReserved3                 ds.l    1                ; offset: $36 (54)
  514. clientData                 ds.l    1                ; offset: $3A (58)
  515. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity of initiator 
  516. userRecord                 ds.l    1                ; offset: $42 (66)        ;  <--  OCE name(Record) of the user 
  517. sizeof                     EQU *                    ; size:   $46 (70)
  518.                         ENDR
  519.  
  520. ;kAuthAddKey:
  521. ;userRecord will contain the user information whose identity has to be
  522. ;created. userKey will point to the key to be created. password points to
  523. ;an RString containing the password used to generate the key.
  524. ;
  525.  
  526. AuthAddKeyPB            RECORD 0
  527. qLink                     ds.l    1                ; offset: $0 (0)
  528. reserved1                 ds.l    1                ; offset: $4 (4)
  529. reserved2                 ds.l    1                ; offset: $8 (8)
  530. ioCompletion             ds.l    1                ; offset: $C (12)
  531. ioResult                 ds.w    1                ; offset: $10 (16)
  532. saveA5                     ds.l    1                ; offset: $12 (18)
  533. reqCode                     ds.w    1                ; offset: $16 (22)
  534. reserved                 ds.l    2                ; offset: $18 (24)
  535. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  536. dsRefNum                 ds.w    1                ; offset: $24 (36)
  537. callID                     ds.l    1                ; offset: $26 (38)
  538. identity                 ds.l    1                ; offset: $2A (42)
  539. gReserved1                 ds.l    1                ; offset: $2E (46)
  540. gReserved2                 ds.l    1                ; offset: $32 (50)
  541. gReserved3                 ds.l    1                ; offset: $36 (54)
  542. clientData                 ds.l    1                ; offset: $3A (58)
  543. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  544. userKey                     ds.l    1                ; offset: $42 (66)        ;  <--  OCE Key for the user 
  545. password                 ds.l    1                ; offset: $46 (70)        ;   --> Pointer to password string 
  546. sizeof                     EQU *                    ; size:   $4A (74)
  547.                         ENDR
  548. ;kAuthChangeKey:
  549. ;userRecord will contain the user information whose identity has to be
  550. ;created. userKey will point to the key to be created. password points to
  551. ;an RString containing the password used to generate the key.
  552. ;
  553.  
  554. AuthChangeKeyPB            RECORD 0
  555. qLink                     ds.l    1                ; offset: $0 (0)
  556. reserved1                 ds.l    1                ; offset: $4 (4)
  557. reserved2                 ds.l    1                ; offset: $8 (8)
  558. ioCompletion             ds.l    1                ; offset: $C (12)
  559. ioResult                 ds.w    1                ; offset: $10 (16)
  560. saveA5                     ds.l    1                ; offset: $12 (18)
  561. reqCode                     ds.w    1                ; offset: $16 (22)
  562. reserved                 ds.l    2                ; offset: $18 (24)
  563. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  564. dsRefNum                 ds.w    1                ; offset: $24 (36)
  565. callID                     ds.l    1                ; offset: $26 (38)
  566. identity                 ds.l    1                ; offset: $2A (42)
  567. gReserved1                 ds.l    1                ; offset: $2E (46)
  568. gReserved2                 ds.l    1                ; offset: $32 (50)
  569. gReserved3                 ds.l    1                ; offset: $36 (54)
  570. clientData                 ds.l    1                ; offset: $3A (58)
  571. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  572. userKey                     ds.l    1                ; offset: $42 (66)        ;  <--  New OCE Key for the user 
  573. password                 ds.l    1                ; offset: $46 (70)        ;   -->Pointer to the new password string 
  574. sizeof                     EQU *                    ; size:   $4A (74)
  575.                         ENDR
  576. ;AuthDeleteKey:
  577. ;userRecord will contain the user information whose Key has to be deleted.
  578. ;
  579.  
  580. AuthDeleteKeyPB            RECORD 0
  581. qLink                     ds.l    1                ; offset: $0 (0)
  582. reserved1                 ds.l    1                ; offset: $4 (4)
  583. reserved2                 ds.l    1                ; offset: $8 (8)
  584. ioCompletion             ds.l    1                ; offset: $C (12)
  585. ioResult                 ds.w    1                ; offset: $10 (16)
  586. saveA5                     ds.l    1                ; offset: $12 (18)
  587. reqCode                     ds.w    1                ; offset: $16 (22)
  588. reserved                 ds.l    2                ; offset: $18 (24)
  589. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  590. dsRefNum                 ds.w    1                ; offset: $24 (36)
  591. callID                     ds.l    1                ; offset: $26 (38)
  592. identity                 ds.l    1                ; offset: $2A (42)
  593. gReserved1                 ds.l    1                ; offset: $2E (46)
  594. gReserved2                 ds.l    1                ; offset: $32 (50)
  595. gReserved3                 ds.l    1                ; offset: $36 (54)
  596. clientData                 ds.l    1                ; offset: $3A (58)
  597. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  598. sizeof                     EQU *                    ; size:   $42 (66)
  599.                         ENDR
  600. ;  AuthPasswordToKey: Converts an RString into a key. 
  601. AuthPasswordToKeyPB        RECORD 0
  602. qLink                     ds.l    1                ; offset: $0 (0)
  603. reserved1                 ds.l    1                ; offset: $4 (4)
  604. reserved2                 ds.l    1                ; offset: $8 (8)
  605. ioCompletion             ds.l    1                ; offset: $C (12)
  606. ioResult                 ds.w    1                ; offset: $10 (16)
  607. saveA5                     ds.l    1                ; offset: $12 (18)
  608. reqCode                     ds.w    1                ; offset: $16 (22)
  609. reserved                 ds.l    2                ; offset: $18 (24)
  610. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  611. dsRefNum                 ds.w    1                ; offset: $24 (36)
  612. callID                     ds.l    1                ; offset: $26 (38)
  613. identity                 ds.l    1                ; offset: $2A (42)
  614. gReserved1                 ds.l    1                ; offset: $2E (46)
  615. gReserved2                 ds.l    1                ; offset: $32 (50)
  616. gReserved3                 ds.l    1                ; offset: $36 (54)
  617. clientData                 ds.l    1                ; offset: $3A (58)
  618. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  619. key                         ds.l    1                ; offset: $42 (66)        ;  <--  
  620. password                 ds.l    1                ; offset: $46 (70)        ;   -->Pointer to the new password string 
  621. sizeof                     EQU *                    ; size:   $4A (74)
  622.                         ENDR
  623. ;kAuthGetCredentials:
  624. ;userRecord will contain the user information whose identity has to be
  625. ;kMailDeletedMask. keyType (e.g. asDESKey) will indicate what type of key has to
  626. ;be deleted.
  627. ;
  628.  
  629. AuthGetCredentialsPB    RECORD 0
  630. qLink                     ds.l    1                ; offset: $0 (0)
  631. reserved1                 ds.l    1                ; offset: $4 (4)
  632. reserved2                 ds.l    1                ; offset: $8 (8)
  633. ioCompletion             ds.l    1                ; offset: $C (12)
  634. ioResult                 ds.w    1                ; offset: $10 (16)
  635. saveA5                     ds.l    1                ; offset: $12 (18)
  636. reqCode                     ds.w    1                ; offset: $16 (22)
  637. reserved                 ds.l    2                ; offset: $18 (24)
  638. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  639. dsRefNum                 ds.w    1                ; offset: $24 (36)
  640. callID                     ds.l    1                ; offset: $26 (38)
  641. identity                 ds.l    1                ; offset: $2A (42)
  642. gReserved1                 ds.l    1                ; offset: $2E (46)
  643. gReserved2                 ds.l    1                ; offset: $32 (50)
  644. gReserved3                 ds.l    1                ; offset: $36 (54)
  645. clientData                 ds.l    1                ; offset: $3A (58)
  646. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity of initiator 
  647. recipient                 ds.l    1                ; offset: $42 (66)        ;   --> OCE name of recipient 
  648. sessionKey                 ds.l    1                ; offset: $46 (70)        ;  <--  session key 
  649. expiry                     ds.l    1                ; offset: $4A (74)        ;  <--> desired/actual expiry 
  650. credentialsLength         ds.l    1                ; offset: $4E (78)        ;  <--> max/actual credentials size 
  651. credentials                 ds.l    1                ; offset: $52 (82)        ;  <--  buffer where credentials are returned 
  652. sizeof                     EQU *                    ; size:   $56 (86)
  653.                         ENDR
  654. ;AuthDecryptCredentialsPB:
  655. ;Changes:
  656. ;userKey is changed userIdentity.
  657. ;userRecord is changed to initiatorRecord. User must supply buffer
  658. ;to hold initiatorRecord.
  659. ;agentList has changed to agent. There wil be no call back.
  660. ;User must supply buffer to hold agent Record.
  661. ;An additional boolean parameter 'hasAgent' is included.
  662. ;Toolbox will set this if an 'Agent' record is found in the
  663. ;credentials. If RecordIDPtr is 'nil', no agent record will
  664. ;be copied. However user can examine 'hasAgent', If true user
  665. ;can reissue this call with apprpriate buffer for getting a recordID.
  666. ;agent has changed to intermediary.  User must supply buffer to hold 
  667. ;intermediary Record.  The toolbox will set 'hasIntermediary' if an
  668. ;'intermediary' record is found in the credentials. 
  669. ;
  670.  
  671. AuthDecryptCredentialsPB RECORD 0
  672. qLink                     ds.l    1                ; offset: $0 (0)
  673. reserved1                 ds.l    1                ; offset: $4 (4)
  674. reserved2                 ds.l    1                ; offset: $8 (8)
  675. ioCompletion             ds.l    1                ; offset: $C (12)
  676. ioResult                 ds.w    1                ; offset: $10 (16)
  677. saveA5                     ds.l    1                ; offset: $12 (18)
  678. reqCode                     ds.w    1                ; offset: $16 (22)
  679. reserved                 ds.l    2                ; offset: $18 (24)
  680. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  681. dsRefNum                 ds.w    1                ; offset: $24 (36)
  682. callID                     ds.l    1                ; offset: $26 (38)
  683. identity                 ds.l    1                ; offset: $2A (42)
  684. gReserved1                 ds.l    1                ; offset: $2E (46)
  685. gReserved2                 ds.l    1                ; offset: $32 (50)
  686. gReserved3                 ds.l    1                ; offset: $36 (54)
  687. clientData                 ds.l    1                ; offset: $3A (58)
  688. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> user's Identity 
  689. initiatorRecord             ds.l    1                ; offset: $42 (66)        ;  <--  OCE name of the initiator 
  690. sessionKey                 ds.l    1                ; offset: $46 (70)        ;  <--  session key 
  691. expiry                     ds.l    1                ; offset: $4A (74)        ;  <--  credentials expiry time 
  692. credentialsLength         ds.l    1                ; offset: $4E (78)        ;   --> actual credentials size 
  693. credentials                 ds.l    1                ; offset: $52 (82)        ;   --> credentials to be decrypted 
  694. issueTime                 ds.l    1                ; offset: $56 (86)        ;  <--  credentials expiry time 
  695. hasIntermediary             ds.b    1                ; offset: $5A (90)        ;  <--  if true, An intermediary Record was found in credentials 
  696. filler1                     ds.b    1                ; offset: $5B (91)
  697. intermediary             ds.l    1                ; offset: $5C (92)        ;  <--  recordID of the intermediary 
  698. sizeof                     EQU *                    ; size:   $60 (96)
  699.                         ENDR
  700.  
  701. AuthMakeChallengePB        RECORD 0
  702. qLink                     ds.l    1                ; offset: $0 (0)
  703. reserved1                 ds.l    1                ; offset: $4 (4)
  704. reserved2                 ds.l    1                ; offset: $8 (8)
  705. ioCompletion             ds.l    1                ; offset: $C (12)
  706. ioResult                 ds.w    1                ; offset: $10 (16)
  707. saveA5                     ds.l    1                ; offset: $12 (18)
  708. reqCode                     ds.w    1                ; offset: $16 (22)
  709. reserved                 ds.l    2                ; offset: $18 (24)
  710. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  711. dsRefNum                 ds.w    1                ; offset: $24 (36)
  712. callID                     ds.l    1                ; offset: $26 (38)
  713. identity                 ds.l    1                ; offset: $2A (42)
  714. gReserved1                 ds.l    1                ; offset: $2E (46)
  715. gReserved2                 ds.l    1                ; offset: $32 (50)
  716. gReserved3                 ds.l    1                ; offset: $36 (54)
  717. clientData                 ds.l    1                ; offset: $3A (58)
  718. key                         ds.l    1                ; offset: $3E (62)        ;   --> UnEncrypted SessionKey 
  719. challenge                 ds.l    1                ; offset: $42 (66)        ;  <--  Encrypted Challenge 
  720. challengeBufferLength     ds.l    1                ; offset: $46 (70)        ;   ->length of challenge buffer 
  721. challengeLength             ds.l    1                ; offset: $4A (74)        ;   <-length of Encrypted Challenge 
  722. sizeof                     EQU *                    ; size:   $4E (78)
  723.                         ENDR
  724. AuthMakeReplyPB            RECORD 0
  725. qLink                     ds.l    1                ; offset: $0 (0)
  726. reserved1                 ds.l    1                ; offset: $4 (4)
  727. reserved2                 ds.l    1                ; offset: $8 (8)
  728. ioCompletion             ds.l    1                ; offset: $C (12)
  729. ioResult                 ds.w    1                ; offset: $10 (16)
  730. saveA5                     ds.l    1                ; offset: $12 (18)
  731. reqCode                     ds.w    1                ; offset: $16 (22)
  732. reserved                 ds.l    2                ; offset: $18 (24)
  733. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  734. dsRefNum                 ds.w    1                ; offset: $24 (36)
  735. callID                     ds.l    1                ; offset: $26 (38)
  736. identity                 ds.l    1                ; offset: $2A (42)
  737. gReserved1                 ds.l    1                ; offset: $2E (46)
  738. gReserved2                 ds.l    1                ; offset: $32 (50)
  739. gReserved3                 ds.l    1                ; offset: $36 (54)
  740. clientData                 ds.l    1                ; offset: $3A (58)
  741. key                         ds.l    1                ; offset: $3E (62)        ;   --> UnEncrypted SessionKey 
  742. challenge                 ds.l    1                ; offset: $42 (66)        ;   --> Encrypted Challenge 
  743. reply                     ds.l    1                ; offset: $46 (70)        ;  <--  Encrypted Reply 
  744. replyBufferLength         ds.l    1                ; offset: $4A (74)        ;   -->length of challenge buffer 
  745. challengeLength             ds.l    1                ; offset: $4E (78)        ;   --> length of Encrypted Challenge 
  746. replyLength                 ds.l    1                ; offset: $52 (82)        ;  <--  length of Encrypted Reply 
  747. sizeof                     EQU *                    ; size:   $56 (86)
  748.                         ENDR
  749. AuthVerifyReplyPB        RECORD 0
  750. qLink                     ds.l    1                ; offset: $0 (0)
  751. reserved1                 ds.l    1                ; offset: $4 (4)
  752. reserved2                 ds.l    1                ; offset: $8 (8)
  753. ioCompletion             ds.l    1                ; offset: $C (12)
  754. ioResult                 ds.w    1                ; offset: $10 (16)
  755. saveA5                     ds.l    1                ; offset: $12 (18)
  756. reqCode                     ds.w    1                ; offset: $16 (22)
  757. reserved                 ds.l    2                ; offset: $18 (24)
  758. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  759. dsRefNum                 ds.w    1                ; offset: $24 (36)
  760. callID                     ds.l    1                ; offset: $26 (38)
  761. identity                 ds.l    1                ; offset: $2A (42)
  762. gReserved1                 ds.l    1                ; offset: $2E (46)
  763. gReserved2                 ds.l    1                ; offset: $32 (50)
  764. gReserved3                 ds.l    1                ; offset: $36 (54)
  765. clientData                 ds.l    1                ; offset: $3A (58)
  766. key                         ds.l    1                ; offset: $3E (62)        ;   --> UnEncrypted SessionKey 
  767. challenge                 ds.l    1                ; offset: $42 (66)        ;   --> Encrypted Challenge 
  768. reply                     ds.l    1                ; offset: $46 (70)        ;   --> Encrypted Reply 
  769. challengeLength             ds.l    1                ; offset: $4A (74)        ;   --> length of Encrypted Challenge 
  770. replyLength                 ds.l    1                ; offset: $4E (78)        ;   --> length of Encrypted Reply 
  771. sizeof                     EQU *                    ; size:   $52 (82)
  772.                         ENDR
  773.  
  774.  
  775. ;kAuthGetUTCTime:
  776. ;RLI will contain a valid RLI for a cluster server.
  777. ;UTC(GMT) time from one of the cluster server will be returned.
  778. ;An 'offSet' from UTC(GMT) to Mac Local Time will also be returned.
  779. ;If RLI is nil Map DA is used to determine UTC(GMT).
  780. ;Mac Local Time = theUTCTime + theUTCOffset.
  781. ;
  782.  
  783. AuthGetUTCTimePB        RECORD 0
  784. qLink                     ds.l    1                ; offset: $0 (0)
  785. reserved1                 ds.l    1                ; offset: $4 (4)
  786. reserved2                 ds.l    1                ; offset: $8 (8)
  787. ioCompletion             ds.l    1                ; offset: $C (12)
  788. ioResult                 ds.w    1                ; offset: $10 (16)
  789. saveA5                     ds.l    1                ; offset: $12 (18)
  790. reqCode                     ds.w    1                ; offset: $16 (22)
  791. reserved                 ds.l    2                ; offset: $18 (24)
  792. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  793. dsRefNum                 ds.w    1                ; offset: $24 (36)
  794. callID                     ds.l    1                ; offset: $26 (38)
  795. identity                 ds.l    1                ; offset: $2A (42)
  796. gReserved1                 ds.l    1                ; offset: $2E (46)
  797. gReserved2                 ds.l    1                ; offset: $32 (50)
  798. gReserved3                 ds.l    1                ; offset: $36 (54)
  799. clientData                 ds.l    1                ; offset: $3A (58)
  800. pRLI                     ds.l    1                ; offset: $3E (62)        ;   --> packed RLI of the Node, whose server's UTC is requested 
  801. theUTCTime                 ds.l    1                ; offset: $42 (66)        ;  <--  current UTC(GMT) Time utc seconds since 1/1/1904 
  802. theUTCOffset             ds.l    1                ; offset: $46 (70)        ;  <--  offset from UTC(GMT) seconds EAST of Greenwich 
  803. sizeof                     EQU *                    ; size:   $4A (74)
  804.                         ENDR
  805.  
  806. ;kAuthMakeProxy:
  807. ;A user represented bu the 'userIdentity' can make a proxy using this call.
  808. ;'recipient' is the RecordID of the recipient whom user is requesting proxy.
  809. ;'intermediary' is the RecordID of the intermediary holding proxy for the user.
  810. ;'firstValid' is time at which proxy becomes valid.
  811. ;'expiry' is the time at which proxy must expire.
  812. ;'proxyLength' will have the length of the buffer pointed by 'proxy' as input.
  813. ;When the call completes, it will hold the actual length of proxy. If the
  814. ;call completes 'kOCEMoreData' error, client can reissue the call with the
  815. ;buffer size as 'proxyLength' returned.
  816. ;expiry is a suggestion, and may be adjusted to be earlier by the ADAP/OCE server.
  817. ;The 'proxy' obtained like this might be used by the 'intermediary' to obtain credentials
  818. ;for the server using TradeProxyForCredentials call.
  819. ;authDataLength and authData are intended for possible future work, but are
  820. ;ignored for now.
  821. ;
  822.  
  823. AuthMakeProxyPB            RECORD 0
  824. qLink                     ds.l    1                ; offset: $0 (0)
  825. reserved1                 ds.l    1                ; offset: $4 (4)
  826. reserved2                 ds.l    1                ; offset: $8 (8)
  827. ioCompletion             ds.l    1                ; offset: $C (12)
  828. ioResult                 ds.w    1                ; offset: $10 (16)
  829. saveA5                     ds.l    1                ; offset: $12 (18)
  830. reqCode                     ds.w    1                ; offset: $16 (22)
  831. reserved                 ds.l    2                ; offset: $18 (24)
  832. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  833. dsRefNum                 ds.w    1                ; offset: $24 (36)
  834. callID                     ds.l    1                ; offset: $26 (38)
  835. identity                 ds.l    1                ; offset: $2A (42)
  836. gReserved1                 ds.l    1                ; offset: $2E (46)
  837. gReserved2                 ds.l    1                ; offset: $32 (50)
  838. gReserved3                 ds.l    1                ; offset: $36 (54)
  839. clientData                 ds.l    1                ; offset: $3A (58)
  840. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity of principal 
  841. recipient                 ds.l    1                ; offset: $42 (66)        ;   --> OCE name of recipient 
  842. firstValid                 ds.l    1                ; offset: $46 (70)        ;   --> time at which proxy becomes valid 
  843. expiry                     ds.l    1                ; offset: $4A (74)        ;   --> time at which proxy expires 
  844. authDataLength             ds.l    1                ; offset: $4E (78)        ;   --> size of authorization data 
  845. authData                 ds.l    1                ; offset: $52 (82)        ;   --> pointer to authorization data 
  846. proxyLength                 ds.l    1                ; offset: $56 (86)        ;  <--> max/actual proxy size 
  847. proxy                     ds.l    1                ; offset: $5A (90)        ;  <--> buffer where proxy is returned 
  848. intermediary             ds.l    1                ; offset: $5E (94)        ;   --> RecordID of intermediary 
  849. sizeof                     EQU *                    ; size:   $62 (98)
  850.                         ENDR
  851. ;kAuthTradeProxyForCredentials:
  852. ;Using this call, intermediary holding a 'proxy' for a recipient may obtain credentials
  853. ;for that recipient. 'userIdentity' is the identity for the 'intermediary'.
  854. ;'recipient' is the RecordID for whom credetials are requested.
  855. ;'principal' is the RecordID of the user who created the proxy.
  856. ;'proxyLength' is the length of data pointed by 'proxy.
  857. ;If the call is succesfull, credentials will be returned in the
  858. ;buffer pointed by 'credentials'. 'expiry' is the desired expiry time at input.
  859. ;When call succeds this will have expiry time of credentials.
  860. ;This is very similar to GetCredentials except that we (of course) need the proxy,
  861. ;but we also need the name of the principal who created the proxy.
  862. ;
  863.  
  864. AuthTradeProxyForCredentialsPB RECORD 0
  865. qLink                     ds.l    1                ; offset: $0 (0)
  866. reserved1                 ds.l    1                ; offset: $4 (4)
  867. reserved2                 ds.l    1                ; offset: $8 (8)
  868. ioCompletion             ds.l    1                ; offset: $C (12)
  869. ioResult                 ds.w    1                ; offset: $10 (16)
  870. saveA5                     ds.l    1                ; offset: $12 (18)
  871. reqCode                     ds.w    1                ; offset: $16 (22)
  872. reserved                 ds.l    2                ; offset: $18 (24)
  873. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  874. dsRefNum                 ds.w    1                ; offset: $24 (36)
  875. callID                     ds.l    1                ; offset: $26 (38)
  876. identity                 ds.l    1                ; offset: $2A (42)
  877. gReserved1                 ds.l    1                ; offset: $2E (46)
  878. gReserved2                 ds.l    1                ; offset: $32 (50)
  879. gReserved3                 ds.l    1                ; offset: $36 (54)
  880. clientData                 ds.l    1                ; offset: $3A (58)
  881. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity of intermediary 
  882. recipient                 ds.l    1                ; offset: $42 (66)        ;   --> OCE name of recipient 
  883. sessionKey                 ds.l    1                ; offset: $46 (70)        ;  <--  session key 
  884. expiry                     ds.l    1                ; offset: $4A (74)        ;  <--> desired/actual expiry 
  885. credentialsLength         ds.l    1                ; offset: $4E (78)        ;  <--> max/actual credentials size 
  886. credentials                 ds.l    1                ; offset: $52 (82)        ;  <--> buffer where credentials are returned 
  887. proxyLength                 ds.l    1                ; offset: $56 (86)        ;   --> actual proxy size 
  888. proxy                     ds.l    1                ; offset: $5A (90)        ;   --> buffer containing proxy 
  889. principal                 ds.l    1                ; offset: $5E (94)        ;   --> RecordID of principal 
  890. sizeof                     EQU *                    ; size:   $62 (98)
  891.                         ENDR
  892. ;  API for Local Identity Interface 
  893. ;AuthGetLocalIdentityPB:
  894. ;A Collaborative application intended to work under the umbrella of LocalIdentity
  895. ;for the OCE toolbox will have to make this call to obtain LocalIdentity.
  896. ;If LocalIdentity has not been setup, then application will get
  897. ;'kOCEOCESetupRequired.'. In this case application should put the dialog
  898. ;recommended by the OCE Setup document and guide the user through OCE Setup.
  899. ;If the OCESetup contains local identity, but user has not unlocked, it will get
  900. ;kOCELocalAuthenticationFail. In this case application should use SDPPromptForLocalIdentity
  901. ;to prompt user for the password.
  902. ;If a backGround application or stand alone code requires LocalIdentity, if it gets the
  903. ;OSErr from LocalIdentity and can not call SDPPromptForLocalIdentity, it should it self
  904. ;register with the toolbox using kAuthAddToLocalIdentityQueue call. It will be notified
  905. ;when a LocalIdentity gets created by a foreground application.
  906. ;
  907.  
  908. AuthGetLocalIdentityPB    RECORD 0
  909. qLink                     ds.l    1                ; offset: $0 (0)
  910. reserved1                 ds.l    1                ; offset: $4 (4)
  911. reserved2                 ds.l    1                ; offset: $8 (8)
  912. ioCompletion             ds.l    1                ; offset: $C (12)
  913. ioResult                 ds.w    1                ; offset: $10 (16)
  914. saveA5                     ds.l    1                ; offset: $12 (18)
  915. reqCode                     ds.w    1                ; offset: $16 (22)
  916. reserved                 ds.l    2                ; offset: $18 (24)
  917. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  918. dsRefNum                 ds.w    1                ; offset: $24 (36)
  919. callID                     ds.l    1                ; offset: $26 (38)
  920. identity                 ds.l    1                ; offset: $2A (42)
  921. gReserved1                 ds.l    1                ; offset: $2E (46)
  922. gReserved2                 ds.l    1                ; offset: $32 (50)
  923. gReserved3                 ds.l    1                ; offset: $36 (54)
  924. clientData                 ds.l    1                ; offset: $3A (58)
  925. theLocalIdentity         ds.l    1                ; offset: $3E (62)        ;  <--  LocalIdentity 
  926. sizeof                     EQU *                    ; size:   $42 (66)
  927.                         ENDR
  928. ;kAuthUnlockLocalIdentity:
  929. ;The LocalIdentity can be created using this call.
  930. ;The userName and password correspond to the LocalIdentity setup.
  931. ;If the password matches, then collabIdentity will be returned.
  932. ;Typically SDPPromptForLocalIdentity call will make this call.
  933. ;All applications which are registered through kAuthAddToLocalIdentityQueue
  934. ;will be notified.
  935. ;
  936.  
  937. AuthUnlockLocalIdentityPB RECORD 0
  938. qLink                     ds.l    1                ; offset: $0 (0)
  939. reserved1                 ds.l    1                ; offset: $4 (4)
  940. reserved2                 ds.l    1                ; offset: $8 (8)
  941. ioCompletion             ds.l    1                ; offset: $C (12)
  942. ioResult                 ds.w    1                ; offset: $10 (16)
  943. saveA5                     ds.l    1                ; offset: $12 (18)
  944. reqCode                     ds.w    1                ; offset: $16 (22)
  945. reserved                 ds.l    2                ; offset: $18 (24)
  946. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  947. dsRefNum                 ds.w    1                ; offset: $24 (36)
  948. callID                     ds.l    1                ; offset: $26 (38)
  949. identity                 ds.l    1                ; offset: $2A (42)
  950. gReserved1                 ds.l    1                ; offset: $2E (46)
  951. gReserved2                 ds.l    1                ; offset: $32 (50)
  952. gReserved3                 ds.l    1                ; offset: $36 (54)
  953. clientData                 ds.l    1                ; offset: $3A (58)
  954. theLocalIdentity         ds.l    1                ; offset: $3E (62)        ;  <--  LocalIdentity 
  955. userName                 ds.l    1                ; offset: $42 (66)        ;   --> userName 
  956. password                 ds.l    1                ; offset: $46 (70)        ;   -->user password 
  957. sizeof                     EQU *                    ; size:   $4A (74)
  958.                         ENDR
  959. ;kAuthLockLocalIdentity:
  960. ;With this call existing LocalIdentity can be locked. If the ASDeleteLocalIdetity
  961. ;call fails with 'kOCEOperationDenied' error, name will contain the application which
  962. ;denied the operation. This name will be supplied by the application
  963. ;when it registered through kAuthAddToLocalIdentityQueue call
  964. ;
  965.  
  966. AuthLockLocalIdentityPB    RECORD 0
  967. qLink                     ds.l    1                ; offset: $0 (0)
  968. reserved1                 ds.l    1                ; offset: $4 (4)
  969. reserved2                 ds.l    1                ; offset: $8 (8)
  970. ioCompletion             ds.l    1                ; offset: $C (12)
  971. ioResult                 ds.w    1                ; offset: $10 (16)
  972. saveA5                     ds.l    1                ; offset: $12 (18)
  973. reqCode                     ds.w    1                ; offset: $16 (22)
  974. reserved                 ds.l    2                ; offset: $18 (24)
  975. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  976. dsRefNum                 ds.w    1                ; offset: $24 (36)
  977. callID                     ds.l    1                ; offset: $26 (38)
  978. identity                 ds.l    1                ; offset: $2A (42)
  979. gReserved1                 ds.l    1                ; offset: $2E (46)
  980. gReserved2                 ds.l    1                ; offset: $32 (50)
  981. gReserved3                 ds.l    1                ; offset: $36 (54)
  982. clientData                 ds.l    1                ; offset: $3A (58)
  983. theLocalIdentity         ds.l    1                ; offset: $3E (62)        ;   --> LocalIdentity 
  984. name                     ds.l    1                ; offset: $42 (66)        ;  <--  name of the app which denied delete 
  985. sizeof                     EQU *                    ; size:   $46 (70)
  986.                         ENDR
  987. ; typedef NotificationUPP                 NotificationProc
  988.  
  989. ;kAuthAddToLocalIdentityQueue:
  990. ;An application requiring notification of locking/unlocking of the
  991. ;LocalIdentity can install itself using this call. The function provided
  992. ;in 'notifyProc' will be called whenever the requested event happens.
  993. ;When an AuthLockLocalIdentity call is made to the toolbox, the notificationProc
  994. ;will be called with 'kAuthLockPending'. The application may refuse the lock by returning
  995. ;a 'true' value. If all the registered entries return 'false' value, locking will be done
  996. ;successfully. Otherwise 'kOCEOperationDenied' error is returned to the caller. The appName
  997. ;(registered with the notificationProc) of the application which denied locking is also
  998. ;returned to the caller making the AuthLockIdentity call.
  999. ;
  1000.  
  1001. AuthAddToLocalIdentityQueuePB RECORD 0
  1002. qLink                     ds.l    1                ; offset: $0 (0)
  1003. reserved1                 ds.l    1                ; offset: $4 (4)
  1004. reserved2                 ds.l    1                ; offset: $8 (8)
  1005. ioCompletion             ds.l    1                ; offset: $C (12)
  1006. ioResult                 ds.w    1                ; offset: $10 (16)
  1007. saveA5                     ds.l    1                ; offset: $12 (18)
  1008. reqCode                     ds.w    1                ; offset: $16 (22)
  1009. reserved                 ds.l    2                ; offset: $18 (24)
  1010. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1011. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1012. callID                     ds.l    1                ; offset: $26 (38)
  1013. identity                 ds.l    1                ; offset: $2A (42)
  1014. gReserved1                 ds.l    1                ; offset: $2E (46)
  1015. gReserved2                 ds.l    1                ; offset: $32 (50)
  1016. gReserved3                 ds.l    1                ; offset: $36 (54)
  1017. clientData                 ds.l    1                ; offset: $3A (58)
  1018. notifyProc                 ds.l    1                ; offset: $3E (62)        ;   --> notification procedure 
  1019. notifyFlags                 ds.l    1                ; offset: $42 (66)        ;   --> notifyFlags 
  1020. appName                     ds.l    1                ; offset: $46 (70)        ;   --> name of application to be returned in Delete/Stop 
  1021. sizeof                     EQU *                    ; size:   $4A (74)
  1022.                         ENDR
  1023. ;kAuthRemoveFromLocalIdentityQueue:
  1024. AuthRemoveFromLocalIdentityQueuePB RECORD 0
  1025. qLink                     ds.l    1                ; offset: $0 (0)
  1026. reserved1                 ds.l    1                ; offset: $4 (4)
  1027. reserved2                 ds.l    1                ; offset: $8 (8)
  1028. ioCompletion             ds.l    1                ; offset: $C (12)
  1029. ioResult                 ds.w    1                ; offset: $10 (16)
  1030. saveA5                     ds.l    1                ; offset: $12 (18)
  1031. reqCode                     ds.w    1                ; offset: $16 (22)
  1032. reserved                 ds.l    2                ; offset: $18 (24)
  1033. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1034. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1035. callID                     ds.l    1                ; offset: $26 (38)
  1036. identity                 ds.l    1                ; offset: $2A (42)
  1037. gReserved1                 ds.l    1                ; offset: $2E (46)
  1038. gReserved2                 ds.l    1                ; offset: $32 (50)
  1039. gReserved3                 ds.l    1                ; offset: $36 (54)
  1040. clientData                 ds.l    1                ; offset: $3A (58)
  1041. notifyProc                 ds.l    1                ; offset: $3E (62)        ;   --> notification procedure 
  1042. sizeof                     EQU *                    ; size:   $42 (66)
  1043.                         ENDR
  1044. ;kAuthSetupLocalIdentity:
  1045. ;The LocalIdentity can be Setup using this call.
  1046. ;The userName and password correspond to the LocalIdentity setup.
  1047. ;If a LocalIdentity Setup already exists 'kOCELocalIdentitySetupExists' error
  1048. ;will be returned.
  1049. ;
  1050.  
  1051. AuthSetupLocalIdentityPB RECORD 0
  1052. qLink                     ds.l    1                ; offset: $0 (0)
  1053. reserved1                 ds.l    1                ; offset: $4 (4)
  1054. reserved2                 ds.l    1                ; offset: $8 (8)
  1055. ioCompletion             ds.l    1                ; offset: $C (12)
  1056. ioResult                 ds.w    1                ; offset: $10 (16)
  1057. saveA5                     ds.l    1                ; offset: $12 (18)
  1058. reqCode                     ds.w    1                ; offset: $16 (22)
  1059. reserved                 ds.l    2                ; offset: $18 (24)
  1060. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1061. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1062. callID                     ds.l    1                ; offset: $26 (38)
  1063. identity                 ds.l    1                ; offset: $2A (42)
  1064. gReserved1                 ds.l    1                ; offset: $2E (46)
  1065. gReserved2                 ds.l    1                ; offset: $32 (50)
  1066. gReserved3                 ds.l    1                ; offset: $36 (54)
  1067. clientData                 ds.l    1                ; offset: $3A (58)
  1068. aReserved                 ds.l    1                ; offset: $3E (62)        ;   --  
  1069. userName                 ds.l    1                ; offset: $42 (66)        ;   --> userName 
  1070. password                 ds.l    1                ; offset: $46 (70)        ;   -->user password 
  1071. sizeof                     EQU *                    ; size:   $4A (74)
  1072.                         ENDR
  1073. ;kAuthChangeLocalIdentity:
  1074. ;An existing LocalIdentity  Setup can be changed using this call.
  1075. ;The userName and password correspond to the LocalIdentity setup.
  1076. ;If a LocalIdentity Setup does not exists 'kOCEOCESetupRequired' error
  1077. ;will be returned. The user can use  kAuthSetupLocalIdentity call to setit up.
  1078. ;If the 'password' does not correspond to the existing setup, 'kOCELocalAuthenticationFail'
  1079. ;OSErr will be returned. If successful, LocalID will have new name as 'userName' and
  1080. ;password as 'newPassword' and if any applications has installed into 
  1081. ;LocalIdentityQueue with kNotifyNameChangeMask set, it will be notified with 
  1082. ;kAuthLocalIdentityNameChangeOp action value. 
  1083. ;
  1084. ;
  1085.  
  1086. AuthChangeLocalIdentityPB RECORD 0
  1087. qLink                     ds.l    1                ; offset: $0 (0)
  1088. reserved1                 ds.l    1                ; offset: $4 (4)
  1089. reserved2                 ds.l    1                ; offset: $8 (8)
  1090. ioCompletion             ds.l    1                ; offset: $C (12)
  1091. ioResult                 ds.w    1                ; offset: $10 (16)
  1092. saveA5                     ds.l    1                ; offset: $12 (18)
  1093. reqCode                     ds.w    1                ; offset: $16 (22)
  1094. reserved                 ds.l    2                ; offset: $18 (24)
  1095. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1096. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1097. callID                     ds.l    1                ; offset: $26 (38)
  1098. identity                 ds.l    1                ; offset: $2A (42)
  1099. gReserved1                 ds.l    1                ; offset: $2E (46)
  1100. gReserved2                 ds.l    1                ; offset: $32 (50)
  1101. gReserved3                 ds.l    1                ; offset: $36 (54)
  1102. clientData                 ds.l    1                ; offset: $3A (58)
  1103. aReserved                 ds.l    1                ; offset: $3E (62)        ;   --  
  1104. userName                 ds.l    1                ; offset: $42 (66)        ;   --> userName 
  1105. password                 ds.l    1                ; offset: $46 (70)        ;   --> current password 
  1106. newPassword                 ds.l    1                ; offset: $4A (74)        ;   --> new password 
  1107. sizeof                     EQU *                    ; size:   $4E (78)
  1108.                         ENDR
  1109. ;kAuthRemoveLocalIdentity:
  1110. ;An existing LocalIdentity  Setup can be removed using this call.
  1111. ;The userName and password correspond to the LocalIdentity setup.
  1112. ;If a LocalIdentity Setup does not exists 'kOCEOCESetupRequired' error
  1113. ;will be returned.
  1114. ;If the 'password' does not correspond to the existing setup, 'kOCELocalAuthenticationFail'
  1115. ;OSErr will be returned. If successful, LocalIdentity will be removed from the OCE Setup.
  1116. ;This is a very distructive operation, user must be warned enough before actually making
  1117. ;this call.
  1118. ;
  1119.  
  1120. AuthRemoveLocalIdentityPB RECORD 0
  1121. qLink                     ds.l    1                ; offset: $0 (0)
  1122. reserved1                 ds.l    1                ; offset: $4 (4)
  1123. reserved2                 ds.l    1                ; offset: $8 (8)
  1124. ioCompletion             ds.l    1                ; offset: $C (12)
  1125. ioResult                 ds.w    1                ; offset: $10 (16)
  1126. saveA5                     ds.l    1                ; offset: $12 (18)
  1127. reqCode                     ds.w    1                ; offset: $16 (22)
  1128. reserved                 ds.l    2                ; offset: $18 (24)
  1129. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1130. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1131. callID                     ds.l    1                ; offset: $26 (38)
  1132. identity                 ds.l    1                ; offset: $2A (42)
  1133. gReserved1                 ds.l    1                ; offset: $2E (46)
  1134. gReserved2                 ds.l    1                ; offset: $32 (50)
  1135. gReserved3                 ds.l    1                ; offset: $36 (54)
  1136. clientData                 ds.l    1                ; offset: $3A (58)
  1137. aReserved                 ds.l    1                ; offset: $3E (62)        ;   --  
  1138. userName                 ds.l    1                ; offset: $42 (66)        ;   --> userName 
  1139. password                 ds.l    1                ; offset: $46 (70)        ;   --> current password 
  1140. sizeof                     EQU *                    ; size:   $4A (74)
  1141.                         ENDR
  1142. ;kOCESetupAddDirectoryInfo:
  1143. ;Using this call identity for a catalog can be setup under LocalIdentity umbrella.
  1144. ;ASCreateLocalIdentity should have been done succesfully before making this call.    
  1145. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1146. ;DirAddDSAMDirectory call was made.
  1147. ;rid-> is the recordID in which the identity for the catalog will be established.
  1148. ;password-> the password associated with the rid in the catalog world.
  1149. ;
  1150.  
  1151. OCESetupAddDirectoryInfoPB RECORD 0
  1152. qLink                     ds.l    1                ; offset: $0 (0)
  1153. reserved1                 ds.l    1                ; offset: $4 (4)
  1154. reserved2                 ds.l    1                ; offset: $8 (8)
  1155. ioCompletion             ds.l    1                ; offset: $C (12)
  1156. ioResult                 ds.w    1                ; offset: $10 (16)
  1157. saveA5                     ds.l    1                ; offset: $12 (18)
  1158. reqCode                     ds.w    1                ; offset: $16 (22)
  1159. reserved                 ds.l    2                ; offset: $18 (24)
  1160. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1161. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1162. callID                     ds.l    1                ; offset: $26 (38)
  1163. identity                 ds.l    1                ; offset: $2A (42)
  1164. gReserved1                 ds.l    1                ; offset: $2E (46)
  1165. gReserved2                 ds.l    1                ; offset: $32 (50)
  1166. gReserved3                 ds.l    1                ; offset: $36 (54)
  1167. clientData                 ds.l    1                ; offset: $3A (58)
  1168. directoryRecordCID         ds        CreationID        ; offset: $3E (62)        ;   --> CreationID for the catalog 
  1169. recordID                 ds.l    1                ; offset: $46 (70)        ;   --> recordID for the identity 
  1170. password                 ds.l    1                ; offset: $4A (74)        ;   --> password in the catalog world 
  1171. sizeof                     EQU *                    ; size:   $4E (78)
  1172.                         ENDR
  1173. ;kOCESetupChangeDirectoryInfo:
  1174. ;Using this call an existing identity for a catalog under LocalIdentity umbrella
  1175. ;can be changed.
  1176. ;ASCreateLocalIdentity should have been done succesfully before making this call.
  1177. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1178. ;DirAddDSAMDirectory call was made.
  1179. ;rid-> is the recordID in which the identity for the catalog will be established.
  1180. ;password-> the password associated with the rid in the catalog world.
  1181. ;newPassword -> the new password for the catalog
  1182. ;
  1183.  
  1184. OCESetupChangeDirectoryInfoPB RECORD 0
  1185. qLink                     ds.l    1                ; offset: $0 (0)
  1186. reserved1                 ds.l    1                ; offset: $4 (4)
  1187. reserved2                 ds.l    1                ; offset: $8 (8)
  1188. ioCompletion             ds.l    1                ; offset: $C (12)
  1189. ioResult                 ds.w    1                ; offset: $10 (16)
  1190. saveA5                     ds.l    1                ; offset: $12 (18)
  1191. reqCode                     ds.w    1                ; offset: $16 (22)
  1192. reserved                 ds.l    2                ; offset: $18 (24)
  1193. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1194. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1195. callID                     ds.l    1                ; offset: $26 (38)
  1196. identity                 ds.l    1                ; offset: $2A (42)
  1197. gReserved1                 ds.l    1                ; offset: $2E (46)
  1198. gReserved2                 ds.l    1                ; offset: $32 (50)
  1199. gReserved3                 ds.l    1                ; offset: $36 (54)
  1200. clientData                 ds.l    1                ; offset: $3A (58)
  1201. directoryRecordCID         ds        CreationID        ; offset: $3E (62)        ;   --> CreationID for the catalog 
  1202. recordID                 ds.l    1                ; offset: $46 (70)        ;   --> recordID for the identity 
  1203. password                 ds.l    1                ; offset: $4A (74)        ;   --> password in the catalog world 
  1204. newPassword                 ds.l    1                ; offset: $4E (78)        ;   --> new password in the catalog 
  1205. sizeof                     EQU *                    ; size:   $52 (82)
  1206.                         ENDR
  1207. ;kOCESetupRemoveDirectoryInfo:
  1208. ;Using this call an existing identity for a catalog under LocalIdentity umbrella
  1209. ;can be changed.
  1210. ;ASCreateLocalIdentity should have been done succesfully before making this call.
  1211. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1212. ;
  1213.  
  1214. OCESetupRemoveDirectoryInfoPB RECORD 0
  1215. qLink                     ds.l    1                ; offset: $0 (0)
  1216. reserved1                 ds.l    1                ; offset: $4 (4)
  1217. reserved2                 ds.l    1                ; offset: $8 (8)
  1218. ioCompletion             ds.l    1                ; offset: $C (12)
  1219. ioResult                 ds.w    1                ; offset: $10 (16)
  1220. saveA5                     ds.l    1                ; offset: $12 (18)
  1221. reqCode                     ds.w    1                ; offset: $16 (22)
  1222. reserved                 ds.l    2                ; offset: $18 (24)
  1223. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1224. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1225. callID                     ds.l    1                ; offset: $26 (38)
  1226. identity                 ds.l    1                ; offset: $2A (42)
  1227. gReserved1                 ds.l    1                ; offset: $2E (46)
  1228. gReserved2                 ds.l    1                ; offset: $32 (50)
  1229. gReserved3                 ds.l    1                ; offset: $36 (54)
  1230. clientData                 ds.l    1                ; offset: $3A (58)
  1231. directoryRecordCID         ds        CreationID        ; offset: $3E (62)        ;   --> CreationID for the catalog 
  1232. sizeof                     EQU *                    ; size:   $46 (70)
  1233.                         ENDR
  1234. ;kOCESetupGetDirectoryInfo:
  1235. ;Using this call info on an existing identity for a particular catalog under LocalIdentity umbrella
  1236. ;can be obtained.
  1237. ;For the specified catalog 'directoryName' and 'discriminator', rid and nativeName will
  1238. ;returned. Caller must provide appropriate buffer to get back rid and nativeName.
  1239. ;'password' will be returned  for  non-ADAP Catalogs.
  1240. ;
  1241.  
  1242. OCESetupGetDirectoryInfoPB RECORD 0
  1243. qLink                     ds.l    1                ; offset: $0 (0)
  1244. reserved1                 ds.l    1                ; offset: $4 (4)
  1245. reserved2                 ds.l    1                ; offset: $8 (8)
  1246. ioCompletion             ds.l    1                ; offset: $C (12)
  1247. ioResult                 ds.w    1                ; offset: $10 (16)
  1248. saveA5                     ds.l    1                ; offset: $12 (18)
  1249. reqCode                     ds.w    1                ; offset: $16 (22)
  1250. reserved                 ds.l    2                ; offset: $18 (24)
  1251. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1252. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1253. callID                     ds.l    1                ; offset: $26 (38)
  1254. identity                 ds.l    1                ; offset: $2A (42)
  1255. gReserved1                 ds.l    1                ; offset: $2E (46)
  1256. gReserved2                 ds.l    1                ; offset: $32 (50)
  1257. gReserved3                 ds.l    1                ; offset: $36 (54)
  1258. clientData                 ds.l    1                ; offset: $3A (58)
  1259. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  1260. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminator for the catalog 
  1261. recordID                 ds.l    1                ; offset: $4A (74)        ;  <--  rid for the catalog identity 
  1262. nativeName                 ds.l    1                ; offset: $4E (78)        ;  <--  user name in the catalog world 
  1263. password                 ds.l    1                ; offset: $52 (82)        ;  <--  password in the catalog world 
  1264. sizeof                     EQU *                    ; size:   $56 (86)
  1265.                         ENDR
  1266. ; *****************************************************************************
  1267. ;
  1268. ;
  1269. ;         Catalog Manager operations
  1270. ;
  1271. ;
  1272. ;****************************************************************************
  1273.  
  1274.  
  1275.  
  1276. ; typedef DirParamBlock *                DirParamBlockPtr
  1277.  
  1278. ;  AddRecord 
  1279. DirAddRecordPB            RECORD 0
  1280. qLink                     ds.l    1                ; offset: $0 (0)
  1281. reserved1                 ds.l    1                ; offset: $4 (4)
  1282. reserved2                 ds.l    1                ; offset: $8 (8)
  1283. ioCompletion             ds.l    1                ; offset: $C (12)
  1284. ioResult                 ds.w    1                ; offset: $10 (16)
  1285. saveA5                     ds.l    1                ; offset: $12 (18)
  1286. reqCode                     ds.w    1                ; offset: $16 (22)
  1287. reserved                 ds.l    2                ; offset: $18 (24)
  1288. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1289. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1290. callID                     ds.l    1                ; offset: $26 (38)
  1291. identity                 ds.l    1                ; offset: $2A (42)
  1292. gReserved1                 ds.l    1                ; offset: $2E (46)
  1293. gReserved2                 ds.l    1                ; offset: $32 (50)
  1294. gReserved3                 ds.l    1                ; offset: $36 (54)
  1295. clientData                 ds.l    1                ; offset: $3A (58)
  1296. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> CreationID returned here 
  1297. allowDuplicate             ds.b    1                ; offset: $42 (66)        ;   --> 
  1298. filler1                     ds.b    1                ; offset: $43 (67)
  1299. sizeof                     EQU *                    ; size:   $44 (68)
  1300.                         ENDR
  1301.  
  1302.  
  1303. ;  DeleteRecord 
  1304. DirDeleteRecordPB        RECORD 0
  1305. qLink                     ds.l    1                ; offset: $0 (0)
  1306. reserved1                 ds.l    1                ; offset: $4 (4)
  1307. reserved2                 ds.l    1                ; offset: $8 (8)
  1308. ioCompletion             ds.l    1                ; offset: $C (12)
  1309. ioResult                 ds.w    1                ; offset: $10 (16)
  1310. saveA5                     ds.l    1                ; offset: $12 (18)
  1311. reqCode                     ds.w    1                ; offset: $16 (22)
  1312. reserved                 ds.l    2                ; offset: $18 (24)
  1313. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1314. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1315. callID                     ds.l    1                ; offset: $26 (38)
  1316. identity                 ds.l    1                ; offset: $2A (42)
  1317. gReserved1                 ds.l    1                ; offset: $2E (46)
  1318. gReserved2                 ds.l    1                ; offset: $32 (50)
  1319. gReserved3                 ds.l    1                ; offset: $36 (54)
  1320. clientData                 ds.l    1                ; offset: $3A (58)
  1321. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1322. sizeof                     EQU *                    ; size:   $42 (66)
  1323.                         ENDR
  1324. ;  aRecord must contain valid PackedRLI and a CreationID. 
  1325.  
  1326.  
  1327. ; *********************************************************************************
  1328. ;DirEnumerate:
  1329. ;This call can be used to enumerate both DNodes and records under a specified
  1330. ;DNode. A DNode is specified by the PackedRLIPtr 'aRLI'.
  1331. ;
  1332. ;startingPoint indicates where to start the enumeration.  Initially,
  1333. ;it should be set to a value of nil.  After some records are enumerated,
  1334. ;the client can issue the call again with the same aRLI and recordName and
  1335. ;typeList. The last received DirEnumSpec in the startingPoint field.  The server
  1336. ;will continue the enumeration from that record on. if user wants to get back the
  1337. ;value specified in the startingRecord also, the Boolean 'includeStartingPoint'
  1338. ;must be set to 'true'. If this is set to 'false', records specified after the
  1339. ;startingPoint record will be returned.
  1340. ;
  1341. ;sortBy indicates to the server to return the records that match in name-first
  1342. ;or type-first order.  sortDirection indicates to the server to search in forward
  1343. ;or backward sort order for RecordIDs Specified.
  1344. ;
  1345. ;RecordIDS and Enumeration Criteria:
  1346. ;
  1347. ;PackedRLIPtr parameter 'aRLI' will be accepted for DNode
  1348. ;specification.
  1349. ;
  1350. ;One RStringPtr 'nameMatchString' is provided. User is allowed to
  1351. ;specify a wild card in the name. WildCard specification is specified in 
  1352. ;matchNameHow parameter and possible values are defined in DirMatchWith Enum.
  1353. ;
  1354. ;'typeCount' parameter indicate how many types are in the 'typeList'.
  1355. ;
  1356. ;'typeList' parmeter is a pointer to an RString array of size 'typeCount'.
  1357. ;
  1358. ;If 'typeCount' is exactly equal to one, a wild card can be specified
  1359. ;for the entity type; otherwise types have to be completely specified.
  1360. ;WildCard specification is specified in  matchNameHow parameter
  1361. ; and possible values are defined in DirMatchWith Enum.
  1362. ;
  1363. ;
  1364. ;A nil value for 'startingPoint' is allowed when sortDirection specified
  1365. ;is 'kSortBackwards'. This was not allowed previously.
  1366. ;
  1367. ;'enumFlags' parameter is a bit field. The following bits can be set:
  1368. ;    kEnumDistinguishedNameMask to get back records in the cluster data base.
  1369. ;    kEnumAliasMask to get back record aliases
  1370. ;    kEnumPseudonymMask to get back record pseudonyms
  1371. ;    kEnumDNodeMask to get back any children dNodes for the DNode specified in the
  1372. ;    'aRLI' parameter.
  1373. ;    kEnumForeignDNodeMask to get back any children dNodes which have ForeignDnodes in the
  1374. ;    dNode specified in the 'aRLI' parameter.
  1375. ;
  1376. ;    kEnumAll is combination of all five values and can be used to enumerate
  1377. ;    everything under a specified DNode.
  1378. ;
  1379. ;
  1380. ;
  1381. ;The results returned for each element will consist of a DirEnumSpec.
  1382. ;The DirEnumSpec contains 'enumFlag' which indicates the type of entity and a
  1383. ;union which will have either DNodeID or LocalRecordID depending on the value of 'enumFlag'.
  1384. ;The 'enumFlag'  will indicate whether the returned element is a
  1385. ;record(kEnumDistinguishedNameMask bit) or a alias(kEnumAliasMask bit) or a
  1386. ;Pseudonym(kEnumPseudonymMask) or a child DNode(kEnumDNodeMask bit).  If the 'enumFlag' value
  1387. ;is kEnumDnodeMask, it indicates the value returned in the union is a DNodeID (i.e. 'dNodeNumber'
  1388. ;is the 'dNodeNumber' of the child dnode(if the catalog supports dNodeNumbers, otherwise
  1389. ;this will be set to zero). The name will be the child dnode name. For other values of the
  1390. ;'enumFlag', the value in the union will be LocalRecordID. In addition to kEnumDnodeMask it is
  1391. ;possible that kEnumForeignDNodeMask is also set. This is an advisory bit and application must make
  1392. ;it's own decision before displaying these records. If catalog supports kSupportIndexRatioMask, it
  1393. ;may also return the relative position of the record (percentile of total records) in the 
  1394. ;indexRatio field in EnumSpec.
  1395. ;
  1396. ;
  1397. ;responseSLRV will contain the script, language, region and version of the oce sorting software.
  1398. ;The results will be collected in the 'getBuffer' supplied by the user.
  1399. ;If buffer can not hold all the data returned 'kOCEMoreData' error will be returned.
  1400. ;
  1401. ;If user receives 'noErr' or 'kOCEMoreData', buffer will contain valid results. A user
  1402. ;can extract the results in the 'getBuffer' by making DirEnumerateParse' call.
  1403. ;
  1404.  
  1405.  
  1406. DirEnumerateGetPB        RECORD 0
  1407. qLink                     ds.l    1                ; offset: $0 (0)
  1408. reserved1                 ds.l    1                ; offset: $4 (4)
  1409. reserved2                 ds.l    1                ; offset: $8 (8)
  1410. ioCompletion             ds.l    1                ; offset: $C (12)
  1411. ioResult                 ds.w    1                ; offset: $10 (16)
  1412. saveA5                     ds.l    1                ; offset: $12 (18)
  1413. reqCode                     ds.w    1                ; offset: $16 (22)
  1414. reserved                 ds.l    2                ; offset: $18 (24)
  1415. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1416. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1417. callID                     ds.l    1                ; offset: $26 (38)
  1418. identity                 ds.l    1                ; offset: $2A (42)
  1419. gReserved1                 ds.l    1                ; offset: $2E (46)
  1420. gReserved2                 ds.l    1                ; offset: $32 (50)
  1421. gReserved3                 ds.l    1                ; offset: $36 (54)
  1422. clientData                 ds.l    1                ; offset: $3A (58)
  1423. aRLI                     ds.l    1                ; offset: $3E (62)        ;   --> an RLI specifying the cluster to be enumerated 
  1424. startingPoint             ds.l    1                ; offset: $42 (66)        ;   --> 
  1425. sortBy                     ds.w    1                ; offset: $46 (70)        ;   --> 
  1426. sortDirection             ds.w    1                ; offset: $48 (72)        ;   --> 
  1427. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  1428. nameMatchString             ds.l    1                ; offset: $4E (78)        ;   --> name from which enumeration should start 
  1429. typesList                 ds.l    1                ; offset: $52 (82)        ;   --> list of entity types to be enumerated 
  1430. typeCount                 ds.l    1                ; offset: $56 (86)        ;   --> number of types in the list 
  1431. enumFlags                 ds.l    1                ; offset: $5A (90)        ;   --> indicates what to enumerate 
  1432. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the record specified in starting point 
  1433. padByte                     ds.b    1                ; offset: $5F (95)
  1434. matchNameHow             ds.b    1                ; offset: $60 (96)        ;   --> Matching Criteria for nameMatchString 
  1435. matchTypeHow             ds.b    1                ; offset: $61 (97)        ;   --> Matching Criteria for typeList 
  1436. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  1437. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  1438. responseSLRV             ds        SLRV            ; offset: $6A (106)        ;   <--  response SLRV 
  1439. sizeof                     EQU *                    ; size:   $72 (114)
  1440.                         ENDR
  1441. ;  The EnumerateRecords call-back function is defined as follows: 
  1442. ; typedef ForEachDirEnumSpecUPP         ForEachDirEnumSpec
  1443.  
  1444. ;EnumerateParse:
  1445. ;After an EnumerateGet call has completed, call EnumerateParse
  1446. ;to parse through the buffer that was filled in EnumerateGet.
  1447. ;
  1448. ;'eachEnumSpec' will be called each time to return to the client a
  1449. ;DirEnumSpec that matches the pattern for enumeration. 'enumFlag' indicates the type
  1450. ;of information returned in the DirEnumSpec
  1451. ;The clientData parameter that you pass in the parameter block will be passed
  1452. ;to 'forEachEnumDSSpecFunc'.  You are free to put anything in clientData - it is intended
  1453. ;to allow you some way to match the call-back to the original call (for
  1454. ;example, you make more then one aysynchronous EnumerateGet calls and you want to
  1455. ;associate returned results in some way).
  1456. ;
  1457. ;The client should return FALSE from 'eachEnumSpec' to continue
  1458. ;processing of the EnumerateParse request.  Returning TRUE will
  1459. ;terminate the EnumerateParse request.
  1460. ;
  1461. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  1462. ;of execution as the thread that made the EnumerateParse call.  That means that the
  1463. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  1464. ;that were in effect when the call was made.  Because of this, the call-back
  1465. ;routine has the same restrictions as the caller of EnumerateParse:
  1466. ;if EnumerateParse was not called from interrupt level, then the call-
  1467. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  1468. ;like a ioCompletion except that A5 will be preserved for the application.
  1469. ;
  1470.  
  1471. DirEnumerateParsePB        RECORD 0
  1472. qLink                     ds.l    1                ; offset: $0 (0)
  1473. reserved1                 ds.l    1                ; offset: $4 (4)
  1474. reserved2                 ds.l    1                ; offset: $8 (8)
  1475. ioCompletion             ds.l    1                ; offset: $C (12)
  1476. ioResult                 ds.w    1                ; offset: $10 (16)
  1477. saveA5                     ds.l    1                ; offset: $12 (18)
  1478. reqCode                     ds.w    1                ; offset: $16 (22)
  1479. reserved                 ds.l    2                ; offset: $18 (24)
  1480. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1481. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1482. callID                     ds.l    1                ; offset: $26 (38)
  1483. identity                 ds.l    1                ; offset: $2A (42)
  1484. gReserved1                 ds.l    1                ; offset: $2E (46)
  1485. gReserved2                 ds.l    1                ; offset: $32 (50)
  1486. gReserved3                 ds.l    1                ; offset: $36 (54)
  1487. clientData                 ds.l    1                ; offset: $3A (58)
  1488. aRLI                     ds.l    1                ; offset: $3E (62)        ;   --> an RLI specifying the cluster to be enumerated 
  1489. bReserved                 ds.l    1                ; offset: $42 (66)        ;   --  
  1490. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  1491. eachEnumSpec             ds.l    1                ; offset: $4A (74)        ;   --> 
  1492. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  1493. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  1494. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  1495. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  1496. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  1497. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  1498. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  1499. l1Reserved                 ds.w    1                ; offset: $6A (106)        ;   -- 
  1500. l2Reserved                 ds.w    1                ; offset: $6C (108)        ;   --  
  1501. l3Reserved                 ds.w    1                ; offset: $6E (110)        ;   -- 
  1502. l4Reserved                 ds.w    1                ; offset: $70 (112)        ;   --  
  1503. sizeof                     EQU *                    ; size:   $72 (114)
  1504.                         ENDR
  1505. ; * FindRecordGet operates similarly to DirEnumerate except it returns a list
  1506. ; * of records instead of records local to a cluster.
  1507. ;
  1508.  
  1509. DirFindRecordGetPB        RECORD 0
  1510. qLink                     ds.l    1                ; offset: $0 (0)
  1511. reserved1                 ds.l    1                ; offset: $4 (4)
  1512. reserved2                 ds.l    1                ; offset: $8 (8)
  1513. ioCompletion             ds.l    1                ; offset: $C (12)
  1514. ioResult                 ds.w    1                ; offset: $10 (16)
  1515. saveA5                     ds.l    1                ; offset: $12 (18)
  1516. reqCode                     ds.w    1                ; offset: $16 (22)
  1517. reserved                 ds.l    2                ; offset: $18 (24)
  1518. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1519. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1520. callID                     ds.l    1                ; offset: $26 (38)
  1521. identity                 ds.l    1                ; offset: $2A (42)
  1522. gReserved1                 ds.l    1                ; offset: $2E (46)
  1523. gReserved2                 ds.l    1                ; offset: $32 (50)
  1524. gReserved3                 ds.l    1                ; offset: $36 (54)
  1525. clientData                 ds.l    1                ; offset: $3A (58)
  1526. startingPoint             ds.l    1                ; offset: $3E (62)
  1527. reservedA                 ds.l    2                ; offset: $42 (66)
  1528. nameMatchString             ds.l    1                ; offset: $4A (74)
  1529. typesList                 ds.l    1                ; offset: $4E (78)
  1530. typeCount                 ds.l    1                ; offset: $52 (82)
  1531. reservedB                 ds.l    1                ; offset: $56 (86)
  1532. reservedC                 ds.w    1                ; offset: $5A (90)
  1533. matchNameHow             ds.b    1                ; offset: $5C (92)
  1534. matchTypeHow             ds.b    1                ; offset: $5D (93)
  1535. getBuffer                 ds.l    1                ; offset: $5E (94)
  1536. getBufferSize             ds.l    1                ; offset: $62 (98)
  1537. directoryName             ds.l    1                ; offset: $66 (102)
  1538. discriminator             ds        DirDiscriminator ; offset: $6A (106)
  1539. sizeof                     EQU *                    ; size:   $72 (114)
  1540.                         ENDR
  1541. ;  The FindRecordParse call-back function is defined as follows: 
  1542. ; typedef ForEachRecordUPP                 ForEachRecord
  1543.  
  1544. ; * This PB same as DirFindRecordGet except it includes the callback function
  1545. ;
  1546.  
  1547. DirFindRecordParsePB    RECORD 0
  1548. qLink                     ds.l    1                ; offset: $0 (0)
  1549. reserved1                 ds.l    1                ; offset: $4 (4)
  1550. reserved2                 ds.l    1                ; offset: $8 (8)
  1551. ioCompletion             ds.l    1                ; offset: $C (12)
  1552. ioResult                 ds.w    1                ; offset: $10 (16)
  1553. saveA5                     ds.l    1                ; offset: $12 (18)
  1554. reqCode                     ds.w    1                ; offset: $16 (22)
  1555. reserved                 ds.l    2                ; offset: $18 (24)
  1556. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1557. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1558. callID                     ds.l    1                ; offset: $26 (38)
  1559. identity                 ds.l    1                ; offset: $2A (42)
  1560. gReserved1                 ds.l    1                ; offset: $2E (46)
  1561. gReserved2                 ds.l    1                ; offset: $32 (50)
  1562. gReserved3                 ds.l    1                ; offset: $36 (54)
  1563. clientData                 ds.l    1                ; offset: $3A (58)
  1564. startingPoint             ds.l    1                ; offset: $3E (62)
  1565. reservedA                 ds.l    2                ; offset: $42 (66)
  1566. nameMatchString             ds.l    1                ; offset: $4A (74)
  1567. typesList                 ds.l    1                ; offset: $4E (78)
  1568. typeCount                 ds.l    1                ; offset: $52 (82)
  1569. reservedB                 ds.l    1                ; offset: $56 (86)
  1570. reservedC                 ds.w    1                ; offset: $5A (90)
  1571. matchNameHow             ds.b    1                ; offset: $5C (92)
  1572. matchTypeHow             ds.b    1                ; offset: $5D (93)
  1573. getBuffer                 ds.l    1                ; offset: $5E (94)
  1574. getBufferSize             ds.l    1                ; offset: $62 (98)
  1575. directoryName             ds.l    1                ; offset: $66 (102)
  1576. discriminator             ds        DirDiscriminator ; offset: $6A (106)
  1577. forEachRecordFunc         ds.l    1                ; offset: $72 (114)
  1578. sizeof                     EQU *                    ; size:   $76 (118)
  1579.                         ENDR
  1580.  
  1581.  
  1582. ;LookupGet:
  1583. ;
  1584. ;aRecordList is an array of pointers to RecordIDs, each of which must
  1585. ;contain valid PackedRLI and a CreationID.  recordIDCount is
  1586. ;the size of this array.
  1587. ;
  1588. ;attrTypeList is an array of pointers to AttributeTypes.  attrTypeCount is
  1589. ;the size of this array.
  1590. ;
  1591. ;staringRecordIndex is the record from which to continue the lookup.
  1592. ;If you want to start from first record in the list, this must be 1 (not zero).
  1593. ;This value must always be <= recordIDCount.
  1594. ;
  1595. ;startingAttributeIndex is the AttributeType from which we want to continue the lookup.
  1596. ;If you want to start from first attribute in the list, this must be 1 (not zero).
  1597. ;This value must always be <= attrTypeCount.
  1598. ;
  1599. ;startingAttribute is the value of the attribute value from which we want to
  1600. ;continue lookup. In case of catalogs supporting creationIDs, startingAttribute
  1601. ;may contain only a CID. Other catalogs may require the entire value.
  1602. ;If a non-null cid is given and if an attribute value with that cid is not found, this
  1603. ;call will terminate with kOCENoSuchAttribute error. A client should not make a LookupParse call
  1604. ;after getting this error.
  1605. ;
  1606. ;'includeStartingPoint' boolean can be set to 'true' to receive the value specified in the
  1607. ;startingPoint in the results returned. If this is set to 'false', the value
  1608. ;specified in the startingAttribute will not be returned.
  1609. ;
  1610. ;When LookupGet call fails with kOCEMoreData, the client will be able to find out where the call ended
  1611. ;with a subsequent LookupParse call. When the LookupParse call completes with kOCEMoreData,
  1612. ;lastRecordIndex, lastAttributeIndex and lastValueCID will point to the corresponding
  1613. ;recordID, attributeType and the CreationID of the last value returned successfully. These parameters
  1614. ;are exactly the same ones for the startingRecordIndex, startingAttributeIndex, and startingAttrValueCID
  1615. ;so they can be used in a subsequent LookupGet call to continue the lookup.
  1616. ;
  1617. ;In an extreme case, It is possible that we had an attribute value that is too large to fit
  1618. ;in the client's buffer. In such cases, if it was the only thing that we tried to fit
  1619. ;into the buffer, the client will not able to proceed further because he will not know the
  1620. ;attributeCID of the attribute to continue with.  Also he does not know how big a buffer
  1621. ;would be needed for the next call to get this 'mondo' attribute value successfully.
  1622. ;
  1623. ;to support this, LookupParse call will do the following:
  1624. ;
  1625. ;If LookupGet has failed with kOCEMoreData error, LookupParse will check to make sure that
  1626. ;ForEachAttributeValueFunc has been called at least once. If so, the client has the option
  1627. ;to continue from that attribute CreationID (for PAB/ADAP) in the next LookupGet call.
  1628. ;However, if it was not even called once, then the attribute value may be too big to fit in the
  1629. ;user's buffer. In this case, lastAttrValueCID (lastAttribute) and attrSize are returned in the
  1630. ;parse buffer and the call will fail with kOCEMoreAttrValue. However, it is possible that
  1631. ;ForEachAttributeValue was not called because the user does not have read access to some of
  1632. ;the attributeTypes in the list, and the buffer was full before even reading the creationID of
  1633. ;any of the attribute values.  A kOCEMoreData error is returned.
  1634. ;
  1635. ;The Toolbox will check for duplicate RecordIDs in the aRecordList. If found, it will return
  1636. ;'daDuplicateRecordIDErr'.
  1637. ;
  1638. ;The Toolbox will check for duplicate AttributeTypes in the attrTypeList. If found it will
  1639. ;return 'daDuplicateAttrTypeErr'.
  1640. ;
  1641.  
  1642. DirLookupGetPB            RECORD 0
  1643. qLink                     ds.l    1                ; offset: $0 (0)
  1644. reserved1                 ds.l    1                ; offset: $4 (4)
  1645. reserved2                 ds.l    1                ; offset: $8 (8)
  1646. ioCompletion             ds.l    1                ; offset: $C (12)
  1647. ioResult                 ds.w    1                ; offset: $10 (16)
  1648. saveA5                     ds.l    1                ; offset: $12 (18)
  1649. reqCode                     ds.w    1                ; offset: $16 (22)
  1650. reserved                 ds.l    2                ; offset: $18 (24)
  1651. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1652. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1653. callID                     ds.l    1                ; offset: $26 (38)
  1654. identity                 ds.l    1                ; offset: $2A (42)
  1655. gReserved1                 ds.l    1                ; offset: $2E (46)
  1656. gReserved2                 ds.l    1                ; offset: $32 (50)
  1657. gReserved3                 ds.l    1                ; offset: $36 (54)
  1658. clientData                 ds.l    1                ; offset: $3A (58)
  1659. aRecordList                 ds.l    1                ; offset: $3E (62)        ;   --> an array of RecordID pointers 
  1660. attrTypeList             ds.l    1                ; offset: $42 (66)        ;   --> an array of attribute types 
  1661. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  1662. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  1663. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  1664. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  1665. recordIDCount             ds.l    1                ; offset: $56 (86)        ;   --> 
  1666. attrTypeCount             ds.l    1                ; offset: $5A (90)        ;   --> 
  1667. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the value specified by the starting indices 
  1668. padByte                     ds.b    1                ; offset: $5F (95)
  1669. i1Reserved                 ds.w    1                ; offset: $60 (96)        ;   --  
  1670. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  1671. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  1672. startingRecordIndex         ds.l    1                ; offset: $6A (106)        ;   --> start from this record 
  1673. startingAttrTypeIndex     ds.l    1                ; offset: $6E (110)        ;   --> start from this attribute type 
  1674. startingAttribute         ds        Attribute        ; offset: $72 (114)        ;   --> start from this attribute value 
  1675. pReserved                 ds.l    1                ; offset: $AA (170)        ;   --  
  1676. sizeof                     EQU *                    ; size:   $AE (174)
  1677.                         ENDR
  1678. ;  The Lookup call-back functions are defined as follows: 
  1679. ; typedef ForEachLookupRecordIDUPP         ForEachLookupRecordID
  1680.  
  1681. ; typedef ForEachAttrTypeLookupUPP         ForEachAttrTypeLookup
  1682.  
  1683. ; typedef ForEachAttrValueUPP             ForEachAttrValue
  1684.  
  1685. ;LookupParse:
  1686. ;
  1687. ;After a LookupGet call has completed, call LookupParse
  1688. ;to parse through the buffer that was filled in LookupGet.  The
  1689. ;toolbox will parse through the buffer and call the appropriate call-back routines
  1690. ;for each item in the getBuffer.
  1691. ;
  1692. ;'eachRecordID' will be called each time to return to the client one of the
  1693. ;RecordIDs from aRecordList.  The clientData parameter that you
  1694. ;pass in the parameter block will be passed to eachRecordID.
  1695. ;You are free to put anything in clientData - it is intended to allow
  1696. ;you some way to match the call-back to the original call (in case, for
  1697. ;example, you make simultaneous asynchronous LookupGet calls).  If you don't
  1698. ;want to get a call-back for each RecordID (for example, if you're looking up
  1699. ;attributes for only one RecordID), pass nil for eachRecordID.
  1700. ;
  1701. ;After forEachLocalRecordIDFunc is called, eachAttrType may be called to pass an
  1702. ;attribute type (one from attrTypeList) that exists in the record specified
  1703. ;in the last eachRecordID call.  If you don't want to get a call-back for
  1704. ;each AttributeType (for example, if you're looking up only one attribute type,
  1705. ;or you prefer to read the type from the Attribute struct during the eachAttrValue
  1706. ;call-back routine), pass nil for eachAttrType. However access controls may
  1707. ;prohibit you from reading some attribute types; in that case eachAttrValue
  1708. ;may not be called even though the value exists. Hence the client should
  1709. ;supply this call-back function to see the access controls for each attribute type.
  1710. ;
  1711. ;This will be followed by one or more calls to eachAttrValue, to pass the
  1712. ;type, tag, and attribute value.  NOTE THIS CHANGE:  you are no longer expected to
  1713. ;pass a pointer to a buffer in which to put the value.  Now you get a pointer to
  1714. ;the value, and you can process it within the call-back routine.
  1715. ;After one or more values are returned, eachAttrType may be called again to pass
  1716. ;another attribute type that exists in the last-specified RecordID.
  1717. ;
  1718. ;The client should return FALSE from eachRecordID, eachAttrType, and
  1719. ;eachAttrValue to continue processing of the LookupParse request.  Returning TRUE
  1720. ;from any call-back will terminate the LookupParse request.
  1721. ;
  1722. ;If LookupGet has failed with kOCEMoreData error, LookupParse will check to make sure that
  1723. ;ForEachAttributeValueFunc has been called at least once. If so, the client has the option
  1724. ;to continue from that attribute CreationID (for PAB/ADAP) in the next LookupGet call.
  1725. ;However, if it was not even called once, then the attribute value may be too big to fit in the
  1726. ;user's buffer. In this case, lastAttrValueCID (lastAttribute) and attrSize are returned in the
  1727. ;parse buffer and the call will fail with kOCEMoreAttrValue. However, it is possible that
  1728. ;ForEachAttributeValue was not called because the user does not have read access to some of
  1729. ;the attributeTypes in the list, and the buffer was full before even reading the creationID of
  1730. ;any of the attribute values.  A kOCEMoreData error is returned.
  1731. ;
  1732. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  1733. ;of execution as the thread that made the LookupParse call.  That means that the
  1734. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  1735. ;that were in effect when the call was made.  Because of this, the call-back
  1736. ;routine has the same restrictions as the caller of LookupParse:
  1737. ;if LookupParse was not called from interrupt level, then the call-
  1738. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  1739. ;like a ioCompletion except that A5 will be preserved for the application.
  1740. ;
  1741.  
  1742. DirLookupParsePB        RECORD 0
  1743. qLink                     ds.l    1                ; offset: $0 (0)
  1744. reserved1                 ds.l    1                ; offset: $4 (4)
  1745. reserved2                 ds.l    1                ; offset: $8 (8)
  1746. ioCompletion             ds.l    1                ; offset: $C (12)
  1747. ioResult                 ds.w    1                ; offset: $10 (16)
  1748. saveA5                     ds.l    1                ; offset: $12 (18)
  1749. reqCode                     ds.w    1                ; offset: $16 (22)
  1750. reserved                 ds.l    2                ; offset: $18 (24)
  1751. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1752. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1753. callID                     ds.l    1                ; offset: $26 (38)
  1754. identity                 ds.l    1                ; offset: $2A (42)
  1755. gReserved1                 ds.l    1                ; offset: $2E (46)
  1756. gReserved2                 ds.l    1                ; offset: $32 (50)
  1757. gReserved3                 ds.l    1                ; offset: $36 (54)
  1758. clientData                 ds.l    1                ; offset: $3A (58)
  1759. aRecordList                 ds.l    1                ; offset: $3E (62)        ;   --> must be same from the corresponding Get call 
  1760. attrTypeList             ds.l    1                ; offset: $42 (66)        ;   --> must be same from the corresponding Get call 
  1761. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  1762. eachRecordID             ds.l    1                ; offset: $4A (74)        ;   --> 
  1763. eachAttrType             ds.l    1                ; offset: $4E (78)        ;   --> 
  1764. eachAttrValue             ds.l    1                ; offset: $52 (82)        ;   --> 
  1765. recordIDCount             ds.l    1                ; offset: $56 (86)        ;   --> must be same from the corresponding Get call 
  1766. attrTypeCount             ds.l    1                ; offset: $5A (90)        ;   --> must be same from the corresponding Get call 
  1767. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  1768. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> must be same from the corresponding Get call
  1769. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> must be same from the corresponding Get call
  1770. lastRecordIndex             ds.l    1                ; offset: $6A (106)        ;  <--  last RecordID processed when parse completed 
  1771. lastAttributeIndex         ds.l    1                ; offset: $6E (110)        ;  <--  last Attribute Type processed when parse completed 
  1772. lastAttribute             ds        Attribute        ; offset: $72 (114)        ;  <--  last attribute value (with this CreationID) processed when parse completed 
  1773. attrSize                 ds.l    1                ; offset: $AA (170)        ;  <--  length of the attribute we did not return 
  1774. sizeof                     EQU *                    ; size:   $AE (174)
  1775.                         ENDR
  1776.  
  1777.  
  1778. ;  AddAttributeValue 
  1779. DirAddAttributeValuePB    RECORD 0
  1780. qLink                     ds.l    1                ; offset: $0 (0)
  1781. reserved1                 ds.l    1                ; offset: $4 (4)
  1782. reserved2                 ds.l    1                ; offset: $8 (8)
  1783. ioCompletion             ds.l    1                ; offset: $C (12)
  1784. ioResult                 ds.w    1                ; offset: $10 (16)
  1785. saveA5                     ds.l    1                ; offset: $12 (18)
  1786. reqCode                     ds.w    1                ; offset: $16 (22)
  1787. reserved                 ds.l    2                ; offset: $18 (24)
  1788. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1789. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1790. callID                     ds.l    1                ; offset: $26 (38)
  1791. identity                 ds.l    1                ; offset: $2A (42)
  1792. gReserved1                 ds.l    1                ; offset: $2E (46)
  1793. gReserved2                 ds.l    1                ; offset: $32 (50)
  1794. gReserved3                 ds.l    1                ; offset: $36 (54)
  1795. clientData                 ds.l    1                ; offset: $3A (58)
  1796. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1797. attr                     ds.l    1                ; offset: $42 (66)        ;   --> AttributeCreationID returned here 
  1798. sizeof                     EQU *                    ; size:   $46 (70)
  1799.                         ENDR
  1800. ;aRecord must contain valid PackedRLI and a CreationID.
  1801. ;
  1802. ;Instead of passing type, length, and value in three separate
  1803. ;fields, we take a pointer to an Attribute structure that contains
  1804. ;all three, and has room for the AttributeCreationNumber.
  1805. ;The AttributeCreationID will be returned in the attr itself.
  1806. ;
  1807. ;The AttributeTag tells the catalog service that the attribute is an RString,
  1808. ;binary, or a RecordID.
  1809. ;
  1810.  
  1811. ;DeleteAttributeType:
  1812. ;This call is provided so that an existing AttributeType can be deleted.
  1813. ;If any attribute values exist for this type, they will all be deleted
  1814. ;(if the user has access rights to delete the values) and then the attribute type
  1815. ;will be deleted. Otherwise dsAccessDenied error will be returned.
  1816. ;
  1817.  
  1818. DirDeleteAttributeTypePB RECORD 0
  1819. qLink                     ds.l    1                ; offset: $0 (0)
  1820. reserved1                 ds.l    1                ; offset: $4 (4)
  1821. reserved2                 ds.l    1                ; offset: $8 (8)
  1822. ioCompletion             ds.l    1                ; offset: $C (12)
  1823. ioResult                 ds.w    1                ; offset: $10 (16)
  1824. saveA5                     ds.l    1                ; offset: $12 (18)
  1825. reqCode                     ds.w    1                ; offset: $16 (22)
  1826. reserved                 ds.l    2                ; offset: $18 (24)
  1827. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1828. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1829. callID                     ds.l    1                ; offset: $26 (38)
  1830. identity                 ds.l    1                ; offset: $2A (42)
  1831. gReserved1                 ds.l    1                ; offset: $2E (46)
  1832. gReserved2                 ds.l    1                ; offset: $32 (50)
  1833. gReserved3                 ds.l    1                ; offset: $36 (54)
  1834. clientData                 ds.l    1                ; offset: $3A (58)
  1835. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1836. attrType                 ds.l    1                ; offset: $42 (66)        ;   --> 
  1837. sizeof                     EQU *                    ; size:   $46 (70)
  1838.                         ENDR
  1839. ;    DeleteAttributeValue
  1840. ;
  1841.  
  1842. DirDeleteAttributeValuePB RECORD 0
  1843. qLink                     ds.l    1                ; offset: $0 (0)
  1844. reserved1                 ds.l    1                ; offset: $4 (4)
  1845. reserved2                 ds.l    1                ; offset: $8 (8)
  1846. ioCompletion             ds.l    1                ; offset: $C (12)
  1847. ioResult                 ds.w    1                ; offset: $10 (16)
  1848. saveA5                     ds.l    1                ; offset: $12 (18)
  1849. reqCode                     ds.w    1                ; offset: $16 (22)
  1850. reserved                 ds.l    2                ; offset: $18 (24)
  1851. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1852. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1853. callID                     ds.l    1                ; offset: $26 (38)
  1854. identity                 ds.l    1                ; offset: $2A (42)
  1855. gReserved1                 ds.l    1                ; offset: $2E (46)
  1856. gReserved2                 ds.l    1                ; offset: $32 (50)
  1857. gReserved3                 ds.l    1                ; offset: $36 (54)
  1858. clientData                 ds.l    1                ; offset: $3A (58)
  1859. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> 
  1860. attr                     ds.l    1                ; offset: $42 (66)        ;   -> 
  1861. sizeof                     EQU *                    ; size:   $46 (70)
  1862.                         ENDR
  1863.  
  1864.  
  1865. ;    ChangeAttributeValue:
  1866. ;    currentAttr ==> the attribute to be changed. For ADAS and PAB CreationID is
  1867. ;                    sufficient
  1868. ;    newAttr     ==> new value for the attribute. For ADAS and PAB 
  1869. ;                    CreationID field will be set when
  1870. ;                    the call succeesfully completes
  1871. ;    
  1872. ;    aRecord     ==> must contain valid PackedRecordLocationInfo and a CreationID.
  1873. ;
  1874. ;
  1875. ;    
  1876. ;
  1877.  
  1878. DirChangeAttributeValuePB RECORD 0
  1879. qLink                     ds.l    1                ; offset: $0 (0)
  1880. reserved1                 ds.l    1                ; offset: $4 (4)
  1881. reserved2                 ds.l    1                ; offset: $8 (8)
  1882. ioCompletion             ds.l    1                ; offset: $C (12)
  1883. ioResult                 ds.w    1                ; offset: $10 (16)
  1884. saveA5                     ds.l    1                ; offset: $12 (18)
  1885. reqCode                     ds.w    1                ; offset: $16 (22)
  1886. reserved                 ds.l    2                ; offset: $18 (24)
  1887. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1888. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1889. callID                     ds.l    1                ; offset: $26 (38)
  1890. identity                 ds.l    1                ; offset: $2A (42)
  1891. gReserved1                 ds.l    1                ; offset: $2E (46)
  1892. gReserved2                 ds.l    1                ; offset: $32 (50)
  1893. gReserved3                 ds.l    1                ; offset: $36 (54)
  1894. clientData                 ds.l    1                ; offset: $3A (58)
  1895. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> 
  1896. currentAttr                 ds.l    1                ; offset: $42 (66)        ;   -> 
  1897. newAttr                     ds.l    1                ; offset: $46 (70)        ;   -> 
  1898. sizeof                     EQU *                    ; size:   $4A (74)
  1899.                         ENDR
  1900.  
  1901. ;  VerifyAttributeValue 
  1902. DirVerifyAttributeValuePB RECORD 0
  1903. qLink                     ds.l    1                ; offset: $0 (0)
  1904. reserved1                 ds.l    1                ; offset: $4 (4)
  1905. reserved2                 ds.l    1                ; offset: $8 (8)
  1906. ioCompletion             ds.l    1                ; offset: $C (12)
  1907. ioResult                 ds.w    1                ; offset: $10 (16)
  1908. saveA5                     ds.l    1                ; offset: $12 (18)
  1909. reqCode                     ds.w    1                ; offset: $16 (22)
  1910. reserved                 ds.l    2                ; offset: $18 (24)
  1911. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1912. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1913. callID                     ds.l    1                ; offset: $26 (38)
  1914. identity                 ds.l    1                ; offset: $2A (42)
  1915. gReserved1                 ds.l    1                ; offset: $2E (46)
  1916. gReserved2                 ds.l    1                ; offset: $32 (50)
  1917. gReserved3                 ds.l    1                ; offset: $36 (54)
  1918. clientData                 ds.l    1                ; offset: $3A (58)
  1919. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1920. attr                     ds.l    1                ; offset: $42 (66)        ;   --> 
  1921. sizeof                     EQU *                    ; size:   $46 (70)
  1922.                         ENDR
  1923. ;aRecord must contain valid PackedRLI and a CreationID.
  1924. ;
  1925. ;The attribute type and value are passed in the attribute structure.  If the
  1926. ;attribute CreationID is non-zero, the server will verify that an attribute with
  1927. ;the specified value and creation number exists in aRecord.  If the attribute
  1928. ;CreationID is zero, the server will verify the attribute by type and value
  1929. ;alone, and return the attribute CreationID in the Attribute struct if the
  1930. ;attribute exists.
  1931. ;
  1932.  
  1933.  
  1934. ;EnumerateAttributeTypesGet:
  1935. ;The following two calls can be used to enumerate the attribute types present in
  1936. ;a specified RecordID.  The first, EnumerateAttributeTypesGet, processes the request
  1937. ;and reads the response into getBuffer, as much as will fit.  A kOCEMoreData error will
  1938. ;be returned if the buffer was not large enough.  After this call completes, the
  1939. ;client can call EnumerateAttributeTypesParse (see below).
  1940. ;
  1941. ;The user will able to continue from a startingPoint by setting a startingAttrType.
  1942. ;Typically, this should be the last value returned in EnumerateAttributeTypesParse call
  1943. ;when 'kOCEMoreData' is returned.
  1944. ;
  1945. ;If 'includeStartingPoint' is true when a 'startingAttrType' is specified, the starting value
  1946. ;will be included in the results, if it exists. If this is set to false, this value will not
  1947. ;be included. AttributeTypes following this type will be returned.
  1948. ;
  1949.  
  1950. DirEnumerateAttributeTypesGetPB RECORD 0
  1951. qLink                     ds.l    1                ; offset: $0 (0)
  1952. reserved1                 ds.l    1                ; offset: $4 (4)
  1953. reserved2                 ds.l    1                ; offset: $8 (8)
  1954. ioCompletion             ds.l    1                ; offset: $C (12)
  1955. ioResult                 ds.w    1                ; offset: $10 (16)
  1956. saveA5                     ds.l    1                ; offset: $12 (18)
  1957. reqCode                     ds.w    1                ; offset: $16 (22)
  1958. reserved                 ds.l    2                ; offset: $18 (24)
  1959. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1960. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1961. callID                     ds.l    1                ; offset: $26 (38)
  1962. identity                 ds.l    1                ; offset: $2A (42)
  1963. gReserved1                 ds.l    1                ; offset: $2E (46)
  1964. gReserved2                 ds.l    1                ; offset: $32 (50)
  1965. gReserved3                 ds.l    1                ; offset: $36 (54)
  1966. clientData                 ds.l    1                ; offset: $3A (58)
  1967. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1968. startingAttrType         ds.l    1                ; offset: $42 (66)        ;   --> starting point 
  1969. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  1970. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  1971. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  1972. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  1973. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  1974. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  1975. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the attrType specified by starting point 
  1976. padByte                     ds.b    1                ; offset: $5F (95)
  1977. i1Reserved                 ds.w    1                ; offset: $60 (96)        ;   --  
  1978. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  1979. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  1980. sizeof                     EQU *                    ; size:   $6A (106)
  1981.                         ENDR
  1982. ;  The call-back function is defined as follows: 
  1983. ; typedef ForEachAttrTypeUPP             ForEachAttrType
  1984.  
  1985. ;EnumerateAttributeTypesParse:
  1986. ;After an EnumerateAttributeTypesGet call has completed, call EnumerateAttributeTypesParse
  1987. ;to parse through the buffer that was filled in EnumerateAttributeTypesGet.  The
  1988. ;toolbox will parse through the buffer and call the call-back routine for
  1989. ;each attribute type in the getBuffer.
  1990. ;
  1991. ;The client should return false from eachAttrType to continue
  1992. ;processing of the EnumerateAttributeTypesParse request.  Returning true will
  1993. ;terminate the EnumerateAttributeTypesParse request.  The clientData parameter that
  1994. ;you pass in the parameter block will be passed to eachAttrType.
  1995. ;You are free to put anything in clientData - it is intended to allow
  1996. ;you some way to match the call-back to the original call (in case, for
  1997. ;example, you make simultaneous asynchronous calls).
  1998. ;
  1999. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2000. ;of execution as the thread that made the EnumerateAttributeTypesParse call.  That means that the
  2001. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2002. ;that were in effect when the call was made.  Because of this, the call-back
  2003. ;routine has the same restrictions as the caller of EnumerateAttributeTypesParse.
  2004. ;If EnumerateAttributeTypesParse was not called from interrupt level, then the call-
  2005. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2006. ;like a ioCompletion except that A5 will be preserved for the application.
  2007. ;
  2008.  
  2009. DirEnumerateAttributeTypesParsePB RECORD 0
  2010. qLink                     ds.l    1                ; offset: $0 (0)
  2011. reserved1                 ds.l    1                ; offset: $4 (4)
  2012. reserved2                 ds.l    1                ; offset: $8 (8)
  2013. ioCompletion             ds.l    1                ; offset: $C (12)
  2014. ioResult                 ds.w    1                ; offset: $10 (16)
  2015. saveA5                     ds.l    1                ; offset: $12 (18)
  2016. reqCode                     ds.w    1                ; offset: $16 (22)
  2017. reserved                 ds.l    2                ; offset: $18 (24)
  2018. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2019. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2020. callID                     ds.l    1                ; offset: $26 (38)
  2021. identity                 ds.l    1                ; offset: $2A (42)
  2022. gReserved1                 ds.l    1                ; offset: $2E (46)
  2023. gReserved2                 ds.l    1                ; offset: $32 (50)
  2024. gReserved3                 ds.l    1                ; offset: $36 (54)
  2025. clientData                 ds.l    1                ; offset: $3A (58)
  2026. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> Same as DirEnumerateAttributeTypesGetPB 
  2027. bReserved                 ds.l    1                ; offset: $42 (66)        ;   --  
  2028. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  2029. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  2030. eachAttrType             ds.l    1                ; offset: $4E (78)        ;   --> 
  2031. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2032. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2033. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2034. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  2035. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2036. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2037. sizeof                     EQU *                    ; size:   $6A (106)
  2038.                         ENDR
  2039. ;DirAbort:
  2040. ;With this call a user will able to abort an outstanding catalog service call.
  2041. ;A user must pass a pointer to the parameter block for the outstanding call.
  2042. ;In the current version of the product, the toolbox will process this call
  2043. ;for NetSearchADAPDirectoriesGet or FindADAPDirectoryByNetSearch calls and if possible
  2044. ;it will abort. For other calls for ADAP and PAB this will return 'daAbortFailErr'.
  2045. ;For CSAM catalogs, this call will be passed to the corresponding CSAM driver.
  2046. ;The CSAM driver may process this call or may return 'daAbortFailErr'. This call can
  2047. ;be called only in synchronous mode. Since the abort call makes references to fields in
  2048. ;the pb associated with the original call, this pb must not be disposed or or altered if
  2049. ;the original call completes before the abort call has completed.
  2050. ;
  2051.  
  2052. DirAbortPB                RECORD 0
  2053. qLink                     ds.l    1                ; offset: $0 (0)
  2054. reserved1                 ds.l    1                ; offset: $4 (4)
  2055. reserved2                 ds.l    1                ; offset: $8 (8)
  2056. ioCompletion             ds.l    1                ; offset: $C (12)
  2057. ioResult                 ds.w    1                ; offset: $10 (16)
  2058. saveA5                     ds.l    1                ; offset: $12 (18)
  2059. reqCode                     ds.w    1                ; offset: $16 (22)
  2060. reserved                 ds.l    2                ; offset: $18 (24)
  2061. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2062. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2063. callID                     ds.l    1                ; offset: $26 (38)
  2064. identity                 ds.l    1                ; offset: $2A (42)
  2065. gReserved1                 ds.l    1                ; offset: $2E (46)
  2066. gReserved2                 ds.l    1                ; offset: $32 (50)
  2067. gReserved3                 ds.l    1                ; offset: $36 (54)
  2068. clientData                 ds.l    1                ; offset: $3A (58)
  2069. pb                         ds.l    1                ; offset: $3E (62)        ;   --> pb for the call which must be aborted 
  2070. sizeof                     EQU *                    ; size:   $42 (66)
  2071.                         ENDR
  2072.  
  2073. ;AddPseudonym:
  2074. ;An alternate name and type can be added to a given record. If allowDuplicate
  2075. ;is set the name and type will be added even if the same name and type already
  2076. ;exists.
  2077. ;
  2078.  
  2079. DirAddPseudonymPB        RECORD 0
  2080. qLink                     ds.l    1                ; offset: $0 (0)
  2081. reserved1                 ds.l    1                ; offset: $4 (4)
  2082. reserved2                 ds.l    1                ; offset: $8 (8)
  2083. ioCompletion             ds.l    1                ; offset: $C (12)
  2084. ioResult                 ds.w    1                ; offset: $10 (16)
  2085. saveA5                     ds.l    1                ; offset: $12 (18)
  2086. reqCode                     ds.w    1                ; offset: $16 (22)
  2087. reserved                 ds.l    2                ; offset: $18 (24)
  2088. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2089. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2090. callID                     ds.l    1                ; offset: $26 (38)
  2091. identity                 ds.l    1                ; offset: $2A (42)
  2092. gReserved1                 ds.l    1                ; offset: $2E (46)
  2093. gReserved2                 ds.l    1                ; offset: $32 (50)
  2094. gReserved3                 ds.l    1                ; offset: $36 (54)
  2095. clientData                 ds.l    1                ; offset: $3A (58)
  2096. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> RecordID to which pseudonym is to be added 
  2097. pseudonymName             ds.l    1                ; offset: $42 (66)        ;   --> new name to be added as pseudonym 
  2098. pseudonymType             ds.l    1                ; offset: $46 (70)        ;   --> new name to be added as pseudonym 
  2099. allowDuplicate             ds.b    1                ; offset: $4A (74)        ;   --> 
  2100. filler1                     ds.b    1                ; offset: $4B (75)
  2101. sizeof                     EQU *                    ; size:   $4C (76)
  2102.                         ENDR
  2103. ;DeletePseudonym:
  2104. ;An alternate name and type for a given record can be deleted.
  2105. ;
  2106.  
  2107. DirDeletePseudonymPB    RECORD 0
  2108. qLink                     ds.l    1                ; offset: $0 (0)
  2109. reserved1                 ds.l    1                ; offset: $4 (4)
  2110. reserved2                 ds.l    1                ; offset: $8 (8)
  2111. ioCompletion             ds.l    1                ; offset: $C (12)
  2112. ioResult                 ds.w    1                ; offset: $10 (16)
  2113. saveA5                     ds.l    1                ; offset: $12 (18)
  2114. reqCode                     ds.w    1                ; offset: $16 (22)
  2115. reserved                 ds.l    2                ; offset: $18 (24)
  2116. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2117. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2118. callID                     ds.l    1                ; offset: $26 (38)
  2119. identity                 ds.l    1                ; offset: $2A (42)
  2120. gReserved1                 ds.l    1                ; offset: $2E (46)
  2121. gReserved2                 ds.l    1                ; offset: $32 (50)
  2122. gReserved3                 ds.l    1                ; offset: $36 (54)
  2123. clientData                 ds.l    1                ; offset: $3A (58)
  2124. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> RecordID to which pseudonym to be added 
  2125. pseudonymName             ds.l    1                ; offset: $42 (66)        ;   --> pseudonymName to be deleted 
  2126. pseudonymType             ds.l    1                ; offset: $46 (70)        ;   --> pseudonymType to be deleted 
  2127. sizeof                     EQU *                    ; size:   $4A (74)
  2128.                         ENDR
  2129.  
  2130. ;    AddAlias:
  2131. ;    This call can be used to create an alias  record. The alias
  2132. ;    can be created either in the same or different cluster. ADAS will not support
  2133. ;    this call for this release. A new catalog capability flag 'kSupportsAlias' will indicate
  2134. ;    if the catalog supports this call. PAB's will support this call. For the PAB implementation,
  2135. ;    this call will create a record with the name and type specified an aRecord.
  2136. ;    This call works exactly like AddRecord.
  2137. ;    If 'allowDuplicate' is false and another record with same name and type already exists
  2138. ;    'daNoDupAllowed' error will be returned.
  2139. ;
  2140.  
  2141. DirAddAliasPB            RECORD 0
  2142. qLink                     ds.l    1                ; offset: $0 (0)
  2143. reserved1                 ds.l    1                ; offset: $4 (4)
  2144. reserved2                 ds.l    1                ; offset: $8 (8)
  2145. ioCompletion             ds.l    1                ; offset: $C (12)
  2146. ioResult                 ds.w    1                ; offset: $10 (16)
  2147. saveA5                     ds.l    1                ; offset: $12 (18)
  2148. reqCode                     ds.w    1                ; offset: $16 (22)
  2149. reserved                 ds.l    2                ; offset: $18 (24)
  2150. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2151. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2152. callID                     ds.l    1                ; offset: $26 (38)
  2153. identity                 ds.l    1                ; offset: $2A (42)
  2154. gReserved1                 ds.l    1                ; offset: $2E (46)
  2155. gReserved2                 ds.l    1                ; offset: $32 (50)
  2156. gReserved3                 ds.l    1                ; offset: $36 (54)
  2157. clientData                 ds.l    1                ; offset: $3A (58)
  2158. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> 
  2159. allowDuplicate             ds.b    1                ; offset: $42 (66)        ;   -> 
  2160. filler1                     ds.b    1                ; offset: $43 (67)
  2161. sizeof                     EQU *                    ; size:   $44 (68)
  2162.                         ENDR
  2163. ;DirFindValue:
  2164. ;This call can be used to find the occurrence of a value. The value
  2165. ;to be matched is passed in the buffer 'matchingData' field. The current
  2166. ;ADAP/PAB implementation will match a maximum of 32 bytes of data.
  2167. ;For attribute values in the PAB/ADAP implementation, only the first 32 bytes will
  2168. ;be used for comparing the occurrence of data. Search can be restricted to
  2169. ;a particular record and/or attribute type by specifying 'aRecord' or 'aType'.
  2170. ;After finding one occurrence, 'startingRecord' and 'startingAttribute'
  2171. ;can be specified to find the next occurrence of the same value.
  2172. ;'sortDirection' can be specified with starting values to search forward or backward.
  2173. ;When a matching value is found, the 'recordFound' indicates the reccordID in which the
  2174. ;data occurrence was found, 'attributeFound' indicates the attribute with in which the
  2175. ;matching data was found. ADAP/PAB implementation returns only the type and creationID of
  2176. ;attributes. Catalogs which don't support creationIDs may return the
  2177. ;complete value; hence this call may need a buffer to hold the data. For ADAP/PAB implementations
  2178. ;the user has to make a DirLookup call to get the actual data. 'recordFound' and
  2179. ;'attributeFound' can be used to initialize 'startingRecord' and 'startingAttribute' to
  2180. ;find the next occurrence of the value.
  2181. ;
  2182.  
  2183. DirFindValuePB            RECORD 0
  2184. qLink                     ds.l    1                ; offset: $0 (0)
  2185. reserved1                 ds.l    1                ; offset: $4 (4)
  2186. reserved2                 ds.l    1                ; offset: $8 (8)
  2187. ioCompletion             ds.l    1                ; offset: $C (12)
  2188. ioResult                 ds.w    1                ; offset: $10 (16)
  2189. saveA5                     ds.l    1                ; offset: $12 (18)
  2190. reqCode                     ds.w    1                ; offset: $16 (22)
  2191. reserved                 ds.l    2                ; offset: $18 (24)
  2192. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2193. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2194. callID                     ds.l    1                ; offset: $26 (38)
  2195. identity                 ds.l    1                ; offset: $2A (42)
  2196. gReserved1                 ds.l    1                ; offset: $2E (46)
  2197. gReserved2                 ds.l    1                ; offset: $32 (50)
  2198. gReserved3                 ds.l    1                ; offset: $36 (54)
  2199. clientData                 ds.l    1                ; offset: $3A (58)
  2200. aRLI                     ds.l    1                ; offset: $3E (62)        ;   --> an RLI specifying the cluster to be enumerated 
  2201. aRecord                     ds.l    1                ; offset: $42 (66)        ;   --> if not nil, look only in this record 
  2202. attrType                 ds.l    1                ; offset: $46 (70)        ;   --> if not nil, look only in this attribute type 
  2203. startingRecord             ds.l    1                ; offset: $4A (74)        ;   --> record in which to start searching 
  2204. startingAttribute         ds.l    1                ; offset: $4E (78)        ;   --> attribute in which to start searching 
  2205. recordFound                 ds.l    1                ; offset: $52 (82)        ;  <--  record in which data was found 
  2206. attributeFound             ds        Attribute        ; offset: $56 (86)        ;  <--  attribute in which data was found 
  2207. matchSize                 ds.l    1                ; offset: $8E (142)        ;   --> length of matching bytes 
  2208. matchingData             ds.l    1                ; offset: $92 (146)        ;   --> data bytes to be matched in search 
  2209. sortDirection             ds.w    1                ; offset: $96 (150)        ;   --> sort direction (forwards or backwards) 
  2210. sizeof                     EQU *                    ; size:   $98 (152)
  2211.                         ENDR
  2212.  
  2213.  
  2214. ;EnumeratePseudonymGet:
  2215. ;This call can be used to enumerate the existing pseudonyms for
  2216. ;a given record specified in 'aRecord'. A starting point can be specified
  2217. ;by 'startingName' and 'startingType'. If the 'includeStartingPoint' boolean
  2218. ;is true and a starting point is specified, the name specified by startingName
  2219. ;and startingType also is returned in the results, if it exists. If this is set to false,
  2220. ;the pseudonym in startingName and Type is not included.
  2221. ;Pseudonyms returned in the 'getBuffer' can be extracted by making an
  2222. ;EnumeratePseudonymParse call. The results will consist of a RecordID with the
  2223. ;name and type of the pseudonym. If the buffer could not hold all the results, then
  2224. ;'kOCEMoreData' error will be returned. The user will be able to continue the call by
  2225. ;using the last result returned as starting point for the next call.
  2226. ;
  2227.  
  2228. DirEnumeratePseudonymGetPB RECORD 0
  2229. qLink                     ds.l    1                ; offset: $0 (0)
  2230. reserved1                 ds.l    1                ; offset: $4 (4)
  2231. reserved2                 ds.l    1                ; offset: $8 (8)
  2232. ioCompletion             ds.l    1                ; offset: $C (12)
  2233. ioResult                 ds.w    1                ; offset: $10 (16)
  2234. saveA5                     ds.l    1                ; offset: $12 (18)
  2235. reqCode                     ds.w    1                ; offset: $16 (22)
  2236. reserved                 ds.l    2                ; offset: $18 (24)
  2237. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2238. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2239. callID                     ds.l    1                ; offset: $26 (38)
  2240. identity                 ds.l    1                ; offset: $2A (42)
  2241. gReserved1                 ds.l    1                ; offset: $2E (46)
  2242. gReserved2                 ds.l    1                ; offset: $32 (50)
  2243. gReserved3                 ds.l    1                ; offset: $36 (54)
  2244. clientData                 ds.l    1                ; offset: $3A (58)
  2245. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2246. startingName             ds.l    1                ; offset: $42 (66)        ;   --> 
  2247. startingType             ds.l    1                ; offset: $46 (70)        ;   --> 
  2248. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  2249. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  2250. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2251. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2252. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2253. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the Pseudonym specified by starting point will be included 
  2254. padByte                     ds.b    1                ; offset: $5F (95)
  2255. i1Reserved                 ds.w    1                ; offset: $60 (96)        ;   --  
  2256. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2257. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2258. sizeof                     EQU *                    ; size:   $6A (106)
  2259.                         ENDR
  2260. ;  The call-back function is defined as follows: 
  2261. ; typedef ForEachRecordIDUPP             ForEachRecordID
  2262.  
  2263. ;EnumeratePseudonymParse:
  2264. ;The pseudonyms returned in the 'getBuffer' from the EnumeratePseudonymGet call
  2265. ;can be extracted by using the EnumeratePseudonymParse call. 'eachRecordID'
  2266. ;will be called for each pseudonym.
  2267. ;
  2268. ;Returning true from any call-back will terminate the EnumeratePseudonymParse call.
  2269. ;
  2270. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2271. ;of execution as the thread that made the EnumeratePseudonymParse call.  That means that the
  2272. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2273. ;that were in effect when the call was made.  Because of this, the call-back
  2274. ;routine has the same restrictions as the caller of EnumeratePseudonymParse:
  2275. ;if EnumeratePseudonymParse was not called from interrupt level, then the call-
  2276. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2277. ;like a ioCompletion except that A5 will be preserved for the application.
  2278. ;
  2279.  
  2280. DirEnumeratePseudonymParsePB RECORD 0
  2281. qLink                     ds.l    1                ; offset: $0 (0)
  2282. reserved1                 ds.l    1                ; offset: $4 (4)
  2283. reserved2                 ds.l    1                ; offset: $8 (8)
  2284. ioCompletion             ds.l    1                ; offset: $C (12)
  2285. ioResult                 ds.w    1                ; offset: $10 (16)
  2286. saveA5                     ds.l    1                ; offset: $12 (18)
  2287. reqCode                     ds.w    1                ; offset: $16 (22)
  2288. reserved                 ds.l    2                ; offset: $18 (24)
  2289. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2290. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2291. callID                     ds.l    1                ; offset: $26 (38)
  2292. identity                 ds.l    1                ; offset: $2A (42)
  2293. gReserved1                 ds.l    1                ; offset: $2E (46)
  2294. gReserved2                 ds.l    1                ; offset: $32 (50)
  2295. gReserved3                 ds.l    1                ; offset: $36 (54)
  2296. clientData                 ds.l    1                ; offset: $3A (58)
  2297. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> same as DirEnumerateAliasesGetPB 
  2298. bReserved                 ds.l    1                ; offset: $42 (66)        ;   --  
  2299. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  2300. eachRecordID             ds.l    1                ; offset: $4A (74)        ;   --> 
  2301. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  2302. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2303. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2304. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2305. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  2306. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2307. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2308. sizeof                     EQU *                    ; size:   $6A (106)
  2309.                         ENDR
  2310.  
  2311.  
  2312. ;  GetNameAndType 
  2313. DirGetNameAndTypePB        RECORD 0
  2314. qLink                     ds.l    1                ; offset: $0 (0)
  2315. reserved1                 ds.l    1                ; offset: $4 (4)
  2316. reserved2                 ds.l    1                ; offset: $8 (8)
  2317. ioCompletion             ds.l    1                ; offset: $C (12)
  2318. ioResult                 ds.w    1                ; offset: $10 (16)
  2319. saveA5                     ds.l    1                ; offset: $12 (18)
  2320. reqCode                     ds.w    1                ; offset: $16 (22)
  2321. reserved                 ds.l    2                ; offset: $18 (24)
  2322. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2323. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2324. callID                     ds.l    1                ; offset: $26 (38)
  2325. identity                 ds.l    1                ; offset: $2A (42)
  2326. gReserved1                 ds.l    1                ; offset: $2E (46)
  2327. gReserved2                 ds.l    1                ; offset: $32 (50)
  2328. gReserved3                 ds.l    1                ; offset: $36 (54)
  2329. clientData                 ds.l    1                ; offset: $3A (58)
  2330. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2331. sizeof                     EQU *                    ; size:   $42 (66)
  2332.                         ENDR
  2333. ;aRecord must contain valid RLI and a CreationID.  It
  2334. ;must also contain pointers to maximum-length RStrings (name and type fields)
  2335. ;in which will be returned the record's distinguished name and type.
  2336. ;
  2337.  
  2338.  
  2339. ;SetNameAndType:
  2340. ;This call can be used to change a name and type for a record. The record
  2341. ;to be renamed is specified using 'aRecord'.
  2342. ;'newName' and 'newType' indicate the name and type to be set.
  2343. ;'allowDuplicate' if true indicates that name is to be set even if another
  2344. ;name and type exactly matches the newName and newType specified.
  2345. ;
  2346. ;'newName' and 'newType' are required since the catalogs not supporting
  2347. ;CreationID require name and type fields in the recordID to identify a given
  2348. ;record.
  2349. ;
  2350.  
  2351. DirSetNameAndTypePB        RECORD 0
  2352. qLink                     ds.l    1                ; offset: $0 (0)
  2353. reserved1                 ds.l    1                ; offset: $4 (4)
  2354. reserved2                 ds.l    1                ; offset: $8 (8)
  2355. ioCompletion             ds.l    1                ; offset: $C (12)
  2356. ioResult                 ds.w    1                ; offset: $10 (16)
  2357. saveA5                     ds.l    1                ; offset: $12 (18)
  2358. reqCode                     ds.w    1                ; offset: $16 (22)
  2359. reserved                 ds.l    2                ; offset: $18 (24)
  2360. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2361. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2362. callID                     ds.l    1                ; offset: $26 (38)
  2363. identity                 ds.l    1                ; offset: $2A (42)
  2364. gReserved1                 ds.l    1                ; offset: $2E (46)
  2365. gReserved2                 ds.l    1                ; offset: $32 (50)
  2366. gReserved3                 ds.l    1                ; offset: $36 (54)
  2367. clientData                 ds.l    1                ; offset: $3A (58)
  2368. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2369. allowDuplicate             ds.b    1                ; offset: $42 (66)        ;   --> 
  2370. padByte                     ds.b    1                ; offset: $43 (67)
  2371. newName                     ds.l    1                ; offset: $44 (68)        ;   --> new name for the record 
  2372. newType                     ds.l    1                ; offset: $48 (72)        ;   --> new type for the record 
  2373. sizeof                     EQU *                    ; size:   $4C (76)
  2374.                         ENDR
  2375.  
  2376.  
  2377.  
  2378. ;DirGetMetaRecordInfo: This call can be made to obtain
  2379. ;the MetaRecordInfo for a given record. Information returned
  2380. ;is 16 bytes of OPAQUE information about the record.
  2381. ;
  2382.  
  2383. DirGetRecordMetaInfoPB    RECORD 0
  2384. qLink                     ds.l    1                ; offset: $0 (0)
  2385. reserved1                 ds.l    1                ; offset: $4 (4)
  2386. reserved2                 ds.l    1                ; offset: $8 (8)
  2387. ioCompletion             ds.l    1                ; offset: $C (12)
  2388. ioResult                 ds.w    1                ; offset: $10 (16)
  2389. saveA5                     ds.l    1                ; offset: $12 (18)
  2390. reqCode                     ds.w    1                ; offset: $16 (22)
  2391. reserved                 ds.l    2                ; offset: $18 (24)
  2392. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2393. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2394. callID                     ds.l    1                ; offset: $26 (38)
  2395. identity                 ds.l    1                ; offset: $2A (42)
  2396. gReserved1                 ds.l    1                ; offset: $2E (46)
  2397. gReserved2                 ds.l    1                ; offset: $32 (50)
  2398. gReserved3                 ds.l    1                ; offset: $36 (54)
  2399. clientData                 ds.l    1                ; offset: $3A (58)
  2400. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2401. metaInfo                 ds        DirMetaInfo        ; offset: $42 (66)        ;  <--  
  2402. sizeof                     EQU *                    ; size:   $52 (82)
  2403.                         ENDR
  2404.  
  2405. ;DirGetDNodeMetaInfo: This call can be made to obtain
  2406. ;the DNodeMetaInfo for a given Packed RLI. Information returned
  2407. ;is 16 bytes of OPAQUE information about the DNode.
  2408. ;
  2409.  
  2410. DirGetDNodeMetaInfoPB    RECORD 0
  2411. qLink                     ds.l    1                ; offset: $0 (0)
  2412. reserved1                 ds.l    1                ; offset: $4 (4)
  2413. reserved2                 ds.l    1                ; offset: $8 (8)
  2414. ioCompletion             ds.l    1                ; offset: $C (12)
  2415. ioResult                 ds.w    1                ; offset: $10 (16)
  2416. saveA5                     ds.l    1                ; offset: $12 (18)
  2417. reqCode                     ds.w    1                ; offset: $16 (22)
  2418. reserved                 ds.l    2                ; offset: $18 (24)
  2419. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2420. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2421. callID                     ds.l    1                ; offset: $26 (38)
  2422. identity                 ds.l    1                ; offset: $2A (42)
  2423. gReserved1                 ds.l    1                ; offset: $2E (46)
  2424. gReserved2                 ds.l    1                ; offset: $32 (50)
  2425. gReserved3                 ds.l    1                ; offset: $36 (54)
  2426. clientData                 ds.l    1                ; offset: $3A (58)
  2427. pRLI                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2428. metaInfo                 ds        DirMetaInfo        ; offset: $42 (66)        ;  <--  
  2429. sizeof                     EQU *                    ; size:   $52 (82)
  2430.                         ENDR
  2431.  
  2432. ;EnumerateDirectoriesGet:
  2433. ;A user can enumerate all the catalogs installed. This includes installed
  2434. ;ADAP and CSAM catalogs. The user can specify a signature as input to restrict
  2435. ;the results. kDirADAPKind will return only ADAP catalogs, kDirDSAMKind
  2436. ;will return all CSAM catalogs. kDirAllKinds will get both ADAP & CSAM catalogs.
  2437. ;A specific signature (e.g. X.500) may be used to get catalogs with an X.500 signature.
  2438. ;The information for each catalog returned will have directoryName, discriminator and features.
  2439. ;
  2440. ;If the user receives 'noErr' or 'kOCEMoreData', the buffer will contain valid results. A user
  2441. ;can extract the results in the 'getBuffer' by making an DirEnumerateDirectories call.
  2442. ;
  2443. ;If 'kOCEMoreData' is received, the user can continue enumeration by using the last catalog and
  2444. ;discriminator as startingDirectoryName and staringDirDiscriminator in the next call.
  2445. ;
  2446. ;If 'includeStartingPoint' is true and a starting point is specified,
  2447. ;the staring point will be returned in the result. If false, it is not included.
  2448. ;
  2449.  
  2450. DirEnumerateDirectoriesGetPB RECORD 0
  2451. qLink                     ds.l    1                ; offset: $0 (0)
  2452. reserved1                 ds.l    1                ; offset: $4 (4)
  2453. reserved2                 ds.l    1                ; offset: $8 (8)
  2454. ioCompletion             ds.l    1                ; offset: $C (12)
  2455. ioResult                 ds.w    1                ; offset: $10 (16)
  2456. saveA5                     ds.l    1                ; offset: $12 (18)
  2457. reqCode                     ds.w    1                ; offset: $16 (22)
  2458. reserved                 ds.l    2                ; offset: $18 (24)
  2459. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2460. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2461. callID                     ds.l    1                ; offset: $26 (38)
  2462. identity                 ds.l    1                ; offset: $2A (42)
  2463. gReserved1                 ds.l    1                ; offset: $2E (46)
  2464. gReserved2                 ds.l    1                ; offset: $32 (50)
  2465. gReserved3                 ds.l    1                ; offset: $36 (54)
  2466. clientData                 ds.l    1                ; offset: $3A (58)
  2467. directoryKind             ds.l    1                ; offset: $3E (62)        ;   --> enumerate catalogs bearing this signature 
  2468. startingDirectoryName     ds.l    1                ; offset: $42 (66)        ;   --> staring catalog name 
  2469. startingDirDiscriminator  ds    DirDiscriminator ; offset: $46 (70)        ;   --> staring catalog discriminator 
  2470. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  2471. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2472. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2473. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2474. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the catalog specified by starting point 
  2475. padByte                     ds.b    1                ; offset: $5F (95)
  2476. i1Reserved                 ds.w    1                ; offset: $60 (96)        ;   --  
  2477. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2478. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2479. sizeof                     EQU *                    ; size:   $6A (106)
  2480.                         ENDR
  2481.  
  2482.  
  2483. ; typedef ForEachDirectoryUPP             ForEachDirectory
  2484.  
  2485. ;EnumerateDirectoriesParse:
  2486. ;The catalog info returned in 'getBuffer' from the EnumerateDirectoriesGet call
  2487. ;can be extracted using the EnumerateDirectoriesParse call. 'eachDirectory' will
  2488. ;be called for each catalog.
  2489. ;
  2490. ;Returning true from any call-back will terminate the EnumerateDirectoriesParse call.
  2491. ;
  2492. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2493. ;of execution as the thread that made the EnumerateDirectoriesParse call.  That means that the
  2494. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2495. ;that were in effect when the call was made.  Because of this, the call-back
  2496. ;routine has the same restrictions as the caller of EnumerateDirectoriesParse:
  2497. ;if EnumerateDirectoriesParse was not called from interrupt level, then the call-
  2498. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2499. ;like a ioCompletion except that A5 will be preserved for the application.
  2500. ;
  2501. ;eachDirectory will be called each time to return to the client a
  2502. ;DirectoryName, DirDiscriminator, and features for that catalog.
  2503. ;
  2504.  
  2505. DirEnumerateDirectoriesParsePB RECORD 0
  2506. qLink                     ds.l    1                ; offset: $0 (0)
  2507. reserved1                 ds.l    1                ; offset: $4 (4)
  2508. reserved2                 ds.l    1                ; offset: $8 (8)
  2509. ioCompletion             ds.l    1                ; offset: $C (12)
  2510. ioResult                 ds.w    1                ; offset: $10 (16)
  2511. saveA5                     ds.l    1                ; offset: $12 (18)
  2512. reqCode                     ds.w    1                ; offset: $16 (22)
  2513. reserved                 ds.l    2                ; offset: $18 (24)
  2514. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2515. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2516. callID                     ds.l    1                ; offset: $26 (38)
  2517. identity                 ds.l    1                ; offset: $2A (42)
  2518. gReserved1                 ds.l    1                ; offset: $2E (46)
  2519. gReserved2                 ds.l    1                ; offset: $32 (50)
  2520. gReserved3                 ds.l    1                ; offset: $36 (54)
  2521. clientData                 ds.l    1                ; offset: $3A (58)
  2522. aReserved                 ds.l    1                ; offset: $3E (62)        ;   --  
  2523. bReserved                 ds.l    1                ; offset: $42 (66)        ;   --  
  2524. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  2525. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  2526. eachDirectory             ds.l    1                ; offset: $4E (78)        ;   --> 
  2527. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2528. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2529. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2530. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  2531. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2532. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2533. sizeof                     EQU *                    ; size:   $6A (106)
  2534.                         ENDR
  2535.  
  2536. ;The Following five call are specific to ADAP Catalogs. Toolbox
  2537. ;remembers a list of catalogs across boots. If any catalog service
  2538. ;call is intended for a ADAP catalog, then it must be in the list.
  2539. ;In order for managing this list, A client (Probably DE will use these
  2540. ;calls.
  2541. ;DirAddADAPDirectoryPB: Add a new ADAP catalog to the list.
  2542. ;DirRemoveADAPDirectory: Remove a ADAP catalog from the list.
  2543. ;DirNetSearchADAPDirectoriesGet:   search an internet for adas catalogs.
  2544. ;DirNetSearchADAPDirectoriesParse: extract the results obtained NetSearchADAPDirectoriesGet.
  2545. ;DirFindADAPDirectoryByNetSearch: Find a specified catalog through net search.
  2546. ;
  2547.  
  2548. ;NetSearchADAPDirectoriesGet:
  2549. ;This call can be used to make a network wide search for finding ADAP catalogs.
  2550. ;This call will be supported only by 'ADAP' and involve highly expensive
  2551. ;network operations, so the user is advised to use utmost discretion before
  2552. ;making this call. The results will be collected in the 'getbuffer' and can be
  2553. ;extracted using NetSearchADAPDirectoriesParse call. The directoryName,
  2554. ;the directoryDiscriminator, features and serverHint (AppleTalk address for
  2555. ;a PathFinder serving that catalog) are collected for each catalog found
  2556. ;on the network. If buffer is too small to hold all the catalogs found on
  2557. ;the network, a 'kOCEMoreData' error will be returned.
  2558. ;
  2559.  
  2560. DirNetSearchADAPDirectoriesGetPB RECORD 0
  2561. qLink                     ds.l    1                ; offset: $0 (0)
  2562. reserved1                 ds.l    1                ; offset: $4 (4)
  2563. reserved2                 ds.l    1                ; offset: $8 (8)
  2564. ioCompletion             ds.l    1                ; offset: $C (12)
  2565. ioResult                 ds.w    1                ; offset: $10 (16)
  2566. saveA5                     ds.l    1                ; offset: $12 (18)
  2567. reqCode                     ds.w    1                ; offset: $16 (22)
  2568. reserved                 ds.l    2                ; offset: $18 (24)
  2569. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2570. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2571. callID                     ds.l    1                ; offset: $26 (38)
  2572. identity                 ds.l    1                ; offset: $2A (42)
  2573. gReserved1                 ds.l    1                ; offset: $2E (46)
  2574. gReserved2                 ds.l    1                ; offset: $32 (50)
  2575. gReserved3                 ds.l    1                ; offset: $36 (54)
  2576. clientData                 ds.l    1                ; offset: $3A (58)
  2577. getBuffer                 ds.l    1                ; offset: $3E (62)        ;   --> 
  2578. getBufferSize             ds.l    1                ; offset: $42 (66)        ;   --> 
  2579. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  2580. sizeof                     EQU *                    ; size:   $4A (74)
  2581.                         ENDR
  2582. ; typedef ForEachADAPDirectoryUPP         ForEachADAPDirectory
  2583.  
  2584. ;DirNetSearchADAPDirectoriesParse:
  2585. ;This call can be used to extract the results obtained in the 'getBuffer'.
  2586. ;The directoryName, directoryDiscriminator, features and
  2587. ;serverHint (AppleTalk address for a PathFinder serving that catalog) are
  2588. ;returned in each call-back. These values may be used to make an
  2589. ;AddADAPDirectory call.
  2590. ;
  2591. ;Returning TRUE from any call-back will terminate the NetSearchADAPDirectoriesParse request.
  2592. ;
  2593. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2594. ;of execution as the thread that made the DirNetSearchADAPDirectoriesParse call. That means that the
  2595. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2596. ;that were in effect when the call was made.  Because of this, the call-back
  2597. ;routine has the same restrictions as the caller of DirNetSearchADAPDirectoriesParse:
  2598. ;if DirNetSearchADAPDirectoriesParse was not called from interrupt level, then the call-
  2599. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2600. ;like a ioCompletion except that A5 will be preserved for the application.
  2601. ;
  2602.  
  2603. DirNetSearchADAPDirectoriesParsePB RECORD 0
  2604. qLink                     ds.l    1                ; offset: $0 (0)
  2605. reserved1                 ds.l    1                ; offset: $4 (4)
  2606. reserved2                 ds.l    1                ; offset: $8 (8)
  2607. ioCompletion             ds.l    1                ; offset: $C (12)
  2608. ioResult                 ds.w    1                ; offset: $10 (16)
  2609. saveA5                     ds.l    1                ; offset: $12 (18)
  2610. reqCode                     ds.w    1                ; offset: $16 (22)
  2611. reserved                 ds.l    2                ; offset: $18 (24)
  2612. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2613. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2614. callID                     ds.l    1                ; offset: $26 (38)
  2615. identity                 ds.l    1                ; offset: $2A (42)
  2616. gReserved1                 ds.l    1                ; offset: $2E (46)
  2617. gReserved2                 ds.l    1                ; offset: $32 (50)
  2618. gReserved3                 ds.l    1                ; offset: $36 (54)
  2619. clientData                 ds.l    1                ; offset: $3A (58)
  2620. getBuffer                 ds.l    1                ; offset: $3E (62)        ;   --> 
  2621. getBufferSize             ds.l    1                ; offset: $42 (66)        ;   --> 
  2622. eachADAPDirectory         ds.l    1                ; offset: $46 (70)        ;   --> 
  2623. sizeof                     EQU *                    ; size:   $4A (74)
  2624.                         ENDR
  2625. ;DirFindADAPDirectoryByNetSearch:
  2626. ;This call can be used to make a network wide search to find an ADAP catalog.
  2627. ;This call will be supported only by 'ADAP' and involves highly expensive
  2628. ;network operations, so the user is advised to use utmost discretion before
  2629. ;making this call. The catalog is specified using directoryName and discriminator.
  2630. ;If 'addToOCESetup' is true, the catalog will be automatically added to the setup
  2631. ;list and will be visible through the EnumerateDirectories call and also
  2632. ;also a creationID to the directoryRecord will be returned.
  2633. ;If this parameter is set to 'false', the catalog will be added to temporary list
  2634. ;and will be available for making other catalog service calls. The catalogs
  2635. ;which are not in the preference catalog list will not be visible through the
  2636. ;EnumerateDirectories call.
  2637. ;
  2638.  
  2639. DirFindADAPDirectoryByNetSearchPB RECORD 0
  2640. qLink                     ds.l    1                ; offset: $0 (0)
  2641. reserved1                 ds.l    1                ; offset: $4 (4)
  2642. reserved2                 ds.l    1                ; offset: $8 (8)
  2643. ioCompletion             ds.l    1                ; offset: $C (12)
  2644. ioResult                 ds.w    1                ; offset: $10 (16)
  2645. saveA5                     ds.l    1                ; offset: $12 (18)
  2646. reqCode                     ds.w    1                ; offset: $16 (22)
  2647. reserved                 ds.l    2                ; offset: $18 (24)
  2648. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2649. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2650. callID                     ds.l    1                ; offset: $26 (38)
  2651. identity                 ds.l    1                ; offset: $2A (42)
  2652. gReserved1                 ds.l    1                ; offset: $2E (46)
  2653. gReserved2                 ds.l    1                ; offset: $32 (50)
  2654. gReserved3                 ds.l    1                ; offset: $36 (54)
  2655. clientData                 ds.l    1                ; offset: $3A (58)
  2656. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  2657. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminate between dup catalog names 
  2658. addToOCESetup             ds.b    1                ; offset: $4A (74)        ;   --> add this catalog to OCE Setup List 
  2659. padByte                     ds.b    1                ; offset: $4B (75)
  2660. directoryRecordCID         ds        CreationID        ; offset: $4C (76)        ;  <--  creationID for the catalog record 
  2661. sizeof                     EQU *                    ; size:   $54 (84)
  2662.                         ENDR
  2663.  
  2664. ;DirAddADAPDirectory:
  2665. ;The catalog specified by 'directoryName' and 'discriminator' will be
  2666. ;added to the list of catalogs maintained by the Toolbox. Once added,
  2667. ;the catalog is available across boots, until the catalog is removed
  2668. ;explicitly through a DirRemoveADAPDirectory call.
  2669. ;If 'serverHint' is not nil, the address provided will be used
  2670. ;to contact a PathFinder for the catalog specified.
  2671. ;If 'serverHint' is nil or does not point to a valid PathFinder server
  2672. ;for that catalog, this call will fail.
  2673. ;If 'addToOCESetup' is true, the catalog will be automatically added to the setup
  2674. ;catalog list and will be visible through EnumerateDirectories calls and
  2675. ;also a creationID to the directoryRecord will be returned.
  2676. ;If this parameter is set to 'false', catalog will be added to temprary list
  2677. ;and will be available for making other catalog service calls. The catalogs
  2678. ;which are not in the setup  list will not be visible through
  2679. ;EnumerateDirectories call.
  2680. ;
  2681.  
  2682. DirAddADAPDirectoryPB    RECORD 0
  2683. qLink                     ds.l    1                ; offset: $0 (0)
  2684. reserved1                 ds.l    1                ; offset: $4 (4)
  2685. reserved2                 ds.l    1                ; offset: $8 (8)
  2686. ioCompletion             ds.l    1                ; offset: $C (12)
  2687. ioResult                 ds.w    1                ; offset: $10 (16)
  2688. saveA5                     ds.l    1                ; offset: $12 (18)
  2689. reqCode                     ds.w    1                ; offset: $16 (22)
  2690. reserved                 ds.l    2                ; offset: $18 (24)
  2691. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2692. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2693. callID                     ds.l    1                ; offset: $26 (38)
  2694. identity                 ds.l    1                ; offset: $2A (42)
  2695. gReserved1                 ds.l    1                ; offset: $2E (46)
  2696. gReserved2                 ds.l    1                ; offset: $32 (50)
  2697. gReserved3                 ds.l    1                ; offset: $36 (54)
  2698. clientData                 ds.l    1                ; offset: $3A (58)
  2699. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  2700. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminate between dup catalog names 
  2701. addToOCESetup             ds.b    1                ; offset: $4A (74)        ;   --> add this catalog to OCE Setup 
  2702. padByte                     ds.b    1                ; offset: $4B (75)
  2703. directoryRecordCID         ds        CreationID        ; offset: $4C (76)        ;  <--  creationID for the catalog record 
  2704. sizeof                     EQU *                    ; size:   $54 (84)
  2705.                         ENDR
  2706.  
  2707.  
  2708. ;GetDirectoryInfo:
  2709. ;DirGetDirectoryInfo will do:
  2710. ;
  2711. ;If a 'dsRefNum' is non-Zero, the catalog information for
  2712. ;    the corresponding  PAB will be  returned.
  2713. ; If 'dsRefNum' is zero and 'serverHint' is non-zero, If the
  2714. ; 'serverHint' points to a valid ADAP Catalog Server(Path Finder),
  2715. ; the catalog information (i.e. directoryName, discriminator, features)
  2716. ; for that catalog will be returned.
  2717. ;    If a  valid catalog name and discriminator are provided
  2718. ;    features (Set of capability flags) for that catalog will be returned.
  2719. ;
  2720.  
  2721. DirGetDirectoryInfoPB    RECORD 0
  2722. qLink                     ds.l    1                ; offset: $0 (0)
  2723. reserved1                 ds.l    1                ; offset: $4 (4)
  2724. reserved2                 ds.l    1                ; offset: $8 (8)
  2725. ioCompletion             ds.l    1                ; offset: $C (12)
  2726. ioResult                 ds.w    1                ; offset: $10 (16)
  2727. saveA5                     ds.l    1                ; offset: $12 (18)
  2728. reqCode                     ds.w    1                ; offset: $16 (22)
  2729. reserved                 ds.l    2                ; offset: $18 (24)
  2730. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2731. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2732. callID                     ds.l    1                ; offset: $26 (38)
  2733. identity                 ds.l    1                ; offset: $2A (42)
  2734. gReserved1                 ds.l    1                ; offset: $2E (46)
  2735. gReserved2                 ds.l    1                ; offset: $32 (50)
  2736. gReserved3                 ds.l    1                ; offset: $36 (54)
  2737. clientData                 ds.l    1                ; offset: $3A (58)
  2738. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  2739. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;  <--> descriminate between dup catalog names 
  2740. features                 ds.l    1                ; offset: $4A (74)        ;  <--  capability bit flags 
  2741. sizeof                     EQU *                    ; size:   $4E (78)
  2742.                         ENDR
  2743.  
  2744. ; * Note on Access Controls:
  2745. ; * Access control is based on a list model.
  2746. ; * You can get access controls list which gives dsObject and accMask for each dsObject.
  2747. ; * GetAccessControl can be limited to currently supplied identity by setting forCurrentUserOnly.
  2748. ; * There are special DSObjects are defined in ADASTypes.h for each of the category
  2749. ; * supported in ADAS Catalogs. (kOwner, kFriends, kAuthenticatedToCluster, 
  2750. ; * kAuthenticatedToDirectory, kGuest) and DUGetActlDSSpec call can be used
  2751. ; * to obtain appropraiate DSSpec before making set calls to ADAS catalogs.
  2752. ; *
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759. ;    GetDNodeAccessControlGet:
  2760. ;    This call can be done to get back access control list for a DNode.
  2761. ;    pRLI -> RLI of the DNode whose access control list is sought
  2762. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  2763. ;                      the identity parameter will be returned other wise entire list
  2764. ;                      will be returned.
  2765. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  2766. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  2767. ;                              results.
  2768. ;                              
  2769. ;    The results will be collected in the 'getBuffer' supplied by the user.
  2770. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  2771. ;     
  2772. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  2773. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  2774. ;    
  2775. ;    Results returned for each DSObject will contain DSSpecPtr and three sets of access mask. 
  2776. ;
  2777. ;
  2778.  
  2779.  
  2780. DirGetDNodeAccessControlGetPB RECORD 0
  2781. qLink                     ds.l    1                ; offset: $0 (0)
  2782. reserved1                 ds.l    1                ; offset: $4 (4)
  2783. reserved2                 ds.l    1                ; offset: $8 (8)
  2784. ioCompletion             ds.l    1                ; offset: $C (12)
  2785. ioResult                 ds.w    1                ; offset: $10 (16)
  2786. saveA5                     ds.l    1                ; offset: $12 (18)
  2787. reqCode                     ds.w    1                ; offset: $16 (22)
  2788. reserved                 ds.l    2                ; offset: $18 (24)
  2789. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2790. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2791. callID                     ds.l    1                ; offset: $26 (38)
  2792. identity                 ds.l    1                ; offset: $2A (42)
  2793. gReserved1                 ds.l    1                ; offset: $2E (46)
  2794. gReserved2                 ds.l    1                ; offset: $32 (50)
  2795. gReserved3                 ds.l    1                ; offset: $36 (54)
  2796. clientData                 ds.l    1                ; offset: $3A (58)
  2797. pRLI                     ds.l    1                ; offset: $3E (62)        ;   -> RLI of the cluster whose access control list is sought  
  2798. bReserved                 ds.l    1                ; offset: $42 (66)        ;   -- unused 
  2799. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  2800. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  2801. eResreved                 ds.l    1                ; offset: $4E (78)        ;  --> 
  2802. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  2803. filler1                     ds.b    1                ; offset: $53 (83)
  2804. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  2805. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the DsObject specified in starting point 
  2806. filler2                     ds.b    1                ; offset: $59 (89)
  2807. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  2808. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  2809. sizeof                     EQU *                    ; size:   $62 (98)
  2810.                         ENDR
  2811. ;  The Access Control call-back function is defined as follows: 
  2812. ; typedef ForEachDNodeAccessControlUPP     ForEachDNodeAccessControl
  2813.  
  2814. ;    GetDNodeAccessControlParse:
  2815. ;    After an GetDNodeAccessControlGet call has completed, 
  2816. ;    call GetDNodeAccessControlParse to parse through the buffer that
  2817. ;    that was filled in GetDNodeAccessControlGet.
  2818. ;    
  2819. ;    'eachObject' will be called each time to return to the client a
  2820. ;    DsObject and a set of three accMasks (three long words) for that object.
  2821. ;    Acceesmasks returned apply to the dsObject in the callback :
  2822. ;    1. Currently Active Access mask for the specified DNode.
  2823. ;    2. Default Access mask for any Record in the DNode
  2824. ;    3. Default Access mask for any Attribute in the DNode
  2825. ;    The clientData parameter that you pass in the parameter block will be passed
  2826. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  2827. ;    to allow you some way to match the call-back to the original call (for
  2828. ;    example, you make more then one aysynchronous GetDNodeAccessControlGet calls and you want to
  2829. ;    associate returned results in some way).
  2830. ;    
  2831. ;    The client should return FALSE from 'eachObject' to continue
  2832. ;    processing of the GetDNodeAccessControlParse request.  Returning TRUE will
  2833. ;    terminate the GetDNodeAccessControlParse request.
  2834. ;
  2835. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  2836. ;    of execution as the thread that made the GetDNodeAccessControlParse call.  That means that the
  2837. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  2838. ;    that were in effect when the call was made.  Because of this, the call-back
  2839. ;    routine has the same restrictions as the caller of GetDNodeAccessControlParse:
  2840. ;    if GetDNodeAccessControlParse was not called from interrupt level, then the call-
  2841. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  2842. ;    like a ioCompletion except that A5 will be preserved for the application.
  2843. ;
  2844. ;
  2845. ;
  2846.  
  2847.  
  2848. DirGetDNodeAccessControlParsePB RECORD 0
  2849. qLink                     ds.l    1                ; offset: $0 (0)
  2850. reserved1                 ds.l    1                ; offset: $4 (4)
  2851. reserved2                 ds.l    1                ; offset: $8 (8)
  2852. ioCompletion             ds.l    1                ; offset: $C (12)
  2853. ioResult                 ds.w    1                ; offset: $10 (16)
  2854. saveA5                     ds.l    1                ; offset: $12 (18)
  2855. reqCode                     ds.w    1                ; offset: $16 (22)
  2856. reserved                 ds.l    2                ; offset: $18 (24)
  2857. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2858. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2859. callID                     ds.l    1                ; offset: $26 (38)
  2860. identity                 ds.l    1                ; offset: $2A (42)
  2861. gReserved1                 ds.l    1                ; offset: $2E (46)
  2862. gReserved2                 ds.l    1                ; offset: $32 (50)
  2863. gReserved3                 ds.l    1                ; offset: $36 (54)
  2864. clientData                 ds.l    1                ; offset: $3A (58)
  2865. pRLI                     ds.l    1                ; offset: $3E (62)        ;   -> RLI of the cluster  
  2866. bReserved                 ds.l    1                ; offset: $42 (66)        ;   -- unused 
  2867. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  2868. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  2869. eachObject                 ds.l    1                ; offset: $4E (78)        ;  --> 
  2870. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  2871. filler1                     ds.b    1                ; offset: $53 (83)
  2872. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  2873. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  2874. filler2                     ds.b    1                ; offset: $59 (89)
  2875. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  2876. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  2877. sizeof                     EQU *                    ; size:   $62 (98)
  2878.                         ENDR
  2879. ;    GetRecordAccessControlGet:
  2880. ;    This call can be done to get back access control list for a RecordID.
  2881. ;    aRecord -> RecordID to which access control list is sought
  2882. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  2883. ;                      the identity parameter will be returned other wise entire list
  2884. ;                      will be returned.
  2885. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  2886. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  2887. ;                              results.
  2888. ;                              
  2889. ;    The results will be collected in the 'getBuffer' supplied by the user.
  2890. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  2891. ;     
  2892. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  2893. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  2894. ;    
  2895. ;    Results returned for each DSObject will contain DSSpecPtr and accMask. 
  2896. ;
  2897. ;
  2898.  
  2899.  
  2900. DirGetRecordAccessControlGetPB RECORD 0
  2901. qLink                     ds.l    1                ; offset: $0 (0)
  2902. reserved1                 ds.l    1                ; offset: $4 (4)
  2903. reserved2                 ds.l    1                ; offset: $8 (8)
  2904. ioCompletion             ds.l    1                ; offset: $C (12)
  2905. ioResult                 ds.w    1                ; offset: $10 (16)
  2906. saveA5                     ds.l    1                ; offset: $12 (18)
  2907. reqCode                     ds.w    1                ; offset: $16 (22)
  2908. reserved                 ds.l    2                ; offset: $18 (24)
  2909. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2910. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2911. callID                     ds.l    1                ; offset: $26 (38)
  2912. identity                 ds.l    1                ; offset: $2A (42)
  2913. gReserved1                 ds.l    1                ; offset: $2E (46)
  2914. gReserved2                 ds.l    1                ; offset: $32 (50)
  2915. gReserved3                 ds.l    1                ; offset: $36 (54)
  2916. clientData                 ds.l    1                ; offset: $3A (58)
  2917. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> RecordID to which access control list is sought list is sought  
  2918. bReserved                 ds.l    1                ; offset: $42 (66)        ;   -- unused 
  2919. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  2920. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  2921. eResreved                 ds.l    1                ; offset: $4E (78)        ;  --> 
  2922. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  2923. filler1                     ds.b    1                ; offset: $53 (83)
  2924. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  2925. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  2926. filler2                     ds.b    1                ; offset: $59 (89)
  2927. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  2928. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  2929. sizeof                     EQU *                    ; size:   $62 (98)
  2930.                         ENDR
  2931. ;  The Access Control call-back function is defined as follows: 
  2932. ; typedef ForEachRecordAccessControlUPP  ForEachRecordAccessControl
  2933.  
  2934. ;    GetRecordAccessControlParse:
  2935. ;    After an GetRecordAccessControlGet call has completed, 
  2936. ;    call GetRecordAccessControlParse to parse through the buffer that
  2937. ;    that was filled in GetRecordAccessControlGet.
  2938. ;    
  2939. ;    'eachObject' will be called each time to return to the client a
  2940. ;    DsObject and a set of three accMasks (three long words) for that object.
  2941. ;    Acceesmasks returned apply to the dsObject in the callback :
  2942. ;    1. Active Access mask for the DNode Containing the Record.
  2943. ;    2. Active Access mask for the Record specified.
  2944. ;    3. Defualt Access mask for Attributes in the record.
  2945. ;    The clientData parameter that you pass in the parameter block will be passed
  2946. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  2947. ;    to allow you some way to match the call-back to the original call (for
  2948. ;    example, you make more then one aysynchronous GetRecordAccessControlGet calls and you want to
  2949. ;    associate returned results in some way).
  2950. ;    
  2951. ;    The client should return FALSE from 'eachObject' to continue
  2952. ;    processing of the GetRecordAccessControlParse request.  Returning TRUE will
  2953. ;    terminate the GetRecordAccessControlParse request.
  2954. ;
  2955. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  2956. ;    of execution as the thread that made the GetRecordAccessControlParse call.  That means that the
  2957. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  2958. ;    that were in effect when the call was made.  Because of this, the call-back
  2959. ;    routine has the same restrictions as the caller of GetRecordAccessControlParse:
  2960. ;    if GetRecordAccessControlParse was not called from interrupt level, then the call-
  2961. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  2962. ;    like a ioCompletion except that A5 will be preserved for the application.
  2963. ;
  2964. ;
  2965. ;
  2966.  
  2967.  
  2968. DirGetRecordAccessControlParsePB RECORD 0
  2969. qLink                     ds.l    1                ; offset: $0 (0)
  2970. reserved1                 ds.l    1                ; offset: $4 (4)
  2971. reserved2                 ds.l    1                ; offset: $8 (8)
  2972. ioCompletion             ds.l    1                ; offset: $C (12)
  2973. ioResult                 ds.w    1                ; offset: $10 (16)
  2974. saveA5                     ds.l    1                ; offset: $12 (18)
  2975. reqCode                     ds.w    1                ; offset: $16 (22)
  2976. reserved                 ds.l    2                ; offset: $18 (24)
  2977. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2978. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2979. callID                     ds.l    1                ; offset: $26 (38)
  2980. identity                 ds.l    1                ; offset: $2A (42)
  2981. gReserved1                 ds.l    1                ; offset: $2E (46)
  2982. gReserved2                 ds.l    1                ; offset: $32 (50)
  2983. gReserved3                 ds.l    1                ; offset: $36 (54)
  2984. clientData                 ds.l    1                ; offset: $3A (58)
  2985. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> RecordID to which access control list is sought list is sought  
  2986. bReserved                 ds.l    1                ; offset: $42 (66)        ;   -- unused 
  2987. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  2988. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  2989. eachObject                 ds.l    1                ; offset: $4E (78)        ;  --> 
  2990. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  2991. filler1                     ds.b    1                ; offset: $53 (83)
  2992. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  2993. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  2994. filler2                     ds.b    1                ; offset: $59 (89)
  2995. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  2996. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  2997. sizeof                     EQU *                    ; size:   $62 (98)
  2998.                         ENDR
  2999. ;    GetAttributeAccessControlGet:
  3000. ;    This call can be done to get back access control list for a attributeType with in a RecordID.
  3001. ;    aRecord -> RecordID to which access control list is sought
  3002. ;    aType    -> Attribute Type to which access controls are sought
  3003. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  3004. ;                      the identity parameter will be returned other wise entire list
  3005. ;                      will be returned.
  3006. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  3007. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  3008. ;                              results.
  3009. ;                              
  3010. ;    The results will be collected in the 'getBuffer' supplied by the user.
  3011. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  3012. ;     
  3013. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  3014. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  3015. ;    
  3016. ;    Results returned for each DSObject will contain DSSpecPtr and accMask. 
  3017. ;
  3018. ;
  3019.  
  3020.  
  3021. DirGetAttributeAccessControlGetPB RECORD 0
  3022. qLink                     ds.l    1                ; offset: $0 (0)
  3023. reserved1                 ds.l    1                ; offset: $4 (4)
  3024. reserved2                 ds.l    1                ; offset: $8 (8)
  3025. ioCompletion             ds.l    1                ; offset: $C (12)
  3026. ioResult                 ds.w    1                ; offset: $10 (16)
  3027. saveA5                     ds.l    1                ; offset: $12 (18)
  3028. reqCode                     ds.w    1                ; offset: $16 (22)
  3029. reserved                 ds.l    2                ; offset: $18 (24)
  3030. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3031. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3032. callID                     ds.l    1                ; offset: $26 (38)
  3033. identity                 ds.l    1                ; offset: $2A (42)
  3034. gReserved1                 ds.l    1                ; offset: $2E (46)
  3035. gReserved2                 ds.l    1                ; offset: $32 (50)
  3036. gReserved3                 ds.l    1                ; offset: $36 (54)
  3037. clientData                 ds.l    1                ; offset: $3A (58)
  3038. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> RecordID to which access control list is sought list is sought  
  3039. aType                     ds.l    1                ; offset: $42 (66)        ;   -> Attribute Type to which access controls are sought          
  3040. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  3041. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  3042. eResreved                 ds.l    1                ; offset: $4E (78)        ;  --> 
  3043. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  3044. filler1                     ds.b    1                ; offset: $53 (83)
  3045. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  3046. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  3047. filler2                     ds.b    1                ; offset: $59 (89)
  3048. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  3049. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  3050. sizeof                     EQU *                    ; size:   $62 (98)
  3051.                         ENDR
  3052. ;  The Access Control call-back function is defined as follows: 
  3053. ; typedef ForEachAttributeAccessControlUPP  ForEachAttributeAccessControl
  3054.  
  3055. ;    GetAttributeAccessControlParse:
  3056. ;    After an GetAttributeAccessControlGet call has completed, 
  3057. ;    call GetAttributeAccessControlParse to parse through the buffer that
  3058. ;    that was filled in GetAttributeAccessControlGet.
  3059. ;    
  3060. ;    'eachObject' will be called each time to return to the client a
  3061. ;    DsObject and a set of three accMasks (three long words) for that object.
  3062. ;    Acceesmasks returned apply to the dsObject in the callback :
  3063. ;    1. Active Access mask for the DNode Containing the Attribute.
  3064. ;    2. Active Access mask for the Record in the Containing the Attribute.
  3065. ;    3. Active Access mask for the specified Attribute.
  3066. ;    The clientData parameter that you pass in the parameter block will be passed
  3067. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  3068. ;    to allow you some way to match the call-back to the original call (for
  3069. ;    example, you make more then one aysynchronous GetAttributeAccessControlGet calls and you want to
  3070. ;    associate returned results in some way).
  3071. ;    
  3072. ;    The client should return FALSE from 'eachObject' to continue
  3073. ;    processing of the GetAttributeAccessControlParse request.  Returning TRUE will
  3074. ;    terminate the GetAttributeAccessControlParse request.
  3075. ;
  3076. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  3077. ;    of execution as the thread that made the GetAttributeAccessControlParse call.  That means that the
  3078. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  3079. ;    that were in effect when the call was made.  Because of this, the call-back
  3080. ;    routine has the same restrictions as the caller of GetAttributeAccessControlParse:
  3081. ;    if GetAttributeAccessControlParse was not called from interrupt level, then the call-
  3082. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  3083. ;    like a ioCompletion except that A5 will be preserved for the application.
  3084. ;
  3085. ;
  3086. ;
  3087.  
  3088.  
  3089. DirGetAttributeAccessControlParsePB RECORD 0
  3090. qLink                     ds.l    1                ; offset: $0 (0)
  3091. reserved1                 ds.l    1                ; offset: $4 (4)
  3092. reserved2                 ds.l    1                ; offset: $8 (8)
  3093. ioCompletion             ds.l    1                ; offset: $C (12)
  3094. ioResult                 ds.w    1                ; offset: $10 (16)
  3095. saveA5                     ds.l    1                ; offset: $12 (18)
  3096. reqCode                     ds.w    1                ; offset: $16 (22)
  3097. reserved                 ds.l    2                ; offset: $18 (24)
  3098. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3099. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3100. callID                     ds.l    1                ; offset: $26 (38)
  3101. identity                 ds.l    1                ; offset: $2A (42)
  3102. gReserved1                 ds.l    1                ; offset: $2E (46)
  3103. gReserved2                 ds.l    1                ; offset: $32 (50)
  3104. gReserved3                 ds.l    1                ; offset: $36 (54)
  3105. clientData                 ds.l    1                ; offset: $3A (58)
  3106. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> RecordID to which access control list is sought list is sought  
  3107. aType                     ds.l    1                ; offset: $42 (66)        ;   -> Attribute Type to which access controls are sought          
  3108. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  3109. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  3110. eachObject                 ds.l    1                ; offset: $4E (78)        ;  --> 
  3111. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  3112. filler1                     ds.b    1                ; offset: $53 (83)
  3113. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  3114. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  3115. filler2                     ds.b    1                ; offset: $59 (89)
  3116. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  3117. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  3118. sizeof                     EQU *                    ; size:   $62 (98)
  3119.                         ENDR
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125. ;MapPathNameToDNodeNumber:
  3126. ;This call maps a given PathName within a catalog to its DNodeNumber.
  3127. ;
  3128.  
  3129. DirMapPathNameToDNodeNumberPB RECORD 0
  3130. qLink                     ds.l    1                ; offset: $0 (0)
  3131. reserved1                 ds.l    1                ; offset: $4 (4)
  3132. reserved2                 ds.l    1                ; offset: $8 (8)
  3133. ioCompletion             ds.l    1                ; offset: $C (12)
  3134. ioResult                 ds.w    1                ; offset: $10 (16)
  3135. saveA5                     ds.l    1                ; offset: $12 (18)
  3136. reqCode                     ds.w    1                ; offset: $16 (22)
  3137. reserved                 ds.l    2                ; offset: $18 (24)
  3138. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3139. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3140. callID                     ds.l    1                ; offset: $26 (38)
  3141. identity                 ds.l    1                ; offset: $2A (42)
  3142. gReserved1                 ds.l    1                ; offset: $2E (46)
  3143. gReserved2                 ds.l    1                ; offset: $32 (50)
  3144. gReserved3                 ds.l    1                ; offset: $36 (54)
  3145. clientData                 ds.l    1                ; offset: $3A (58)
  3146. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  3147. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminator 
  3148. dNodeNumber                 ds.l    1                ; offset: $4A (74)        ;  <--  dNodenumber to the path 
  3149. path                     ds.l    1                ; offset: $4E (78)        ;   --> Path Name to be mapped 
  3150. sizeof                     EQU *                    ; size:   $52 (82)
  3151.                         ENDR
  3152. ;PathName in the path field will be mapped to the cooresponding dNodeNumber and
  3153. ;returned in the DNodeNumber field. directoryName and descriminator Fields are
  3154. ;ignored. DSRefNum is used to identify the catalog.
  3155. ;
  3156.  
  3157.  
  3158.  
  3159. ;MapDNodeNumberToPathName:
  3160. ;This call will map a given DNodeNumber with in a catalog to the
  3161. ;corresponding PathName.
  3162. ;
  3163.  
  3164. DirMapDNodeNumberToPathNamePB RECORD 0
  3165. qLink                     ds.l    1                ; offset: $0 (0)
  3166. reserved1                 ds.l    1                ; offset: $4 (4)
  3167. reserved2                 ds.l    1                ; offset: $8 (8)
  3168. ioCompletion             ds.l    1                ; offset: $C (12)
  3169. ioResult                 ds.w    1                ; offset: $10 (16)
  3170. saveA5                     ds.l    1                ; offset: $12 (18)
  3171. reqCode                     ds.w    1                ; offset: $16 (22)
  3172. reserved                 ds.l    2                ; offset: $18 (24)
  3173. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3174. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3175. callID                     ds.l    1                ; offset: $26 (38)
  3176. identity                 ds.l    1                ; offset: $2A (42)
  3177. gReserved1                 ds.l    1                ; offset: $2E (46)
  3178. gReserved2                 ds.l    1                ; offset: $32 (50)
  3179. gReserved3                 ds.l    1                ; offset: $36 (54)
  3180. clientData                 ds.l    1                ; offset: $3A (58)
  3181. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  3182. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminator 
  3183. dNodeNumber                 ds.l    1                ; offset: $4A (74)        ;   --> dNodenumber to be mapped 
  3184. path                     ds.l    1                ; offset: $4E (78)        ;  <--  Packed Path Name returned 
  3185. lengthOfPathName         ds.w    1                ; offset: $52 (82)        ;   --> length of packed pathName structure
  3186. sizeof                     EQU *                    ; size:   $54 (84)
  3187.                         ENDR
  3188. ;dNodeNumber in the DNodeNumber field will be mapped to the cooresponding
  3189. ;pathName and returned in the PackedPathName field.
  3190. ;lengthOfPathName is to be set the length of pathName structure.
  3191. ;If length of PackedPathName is larger then the lengthOfPathName, kOCEMoreData
  3192. ;OSErr will be returned.
  3193. ;
  3194.  
  3195. ;GetLocalNetworkSpec:
  3196. ;This call will return the Local NetworkSpec. Client should supply
  3197. ;an RString big enough to hold the NetworkSpec.
  3198. ;
  3199.  
  3200. DirGetLocalNetworkSpecPB RECORD 0
  3201. qLink                     ds.l    1                ; offset: $0 (0)
  3202. reserved1                 ds.l    1                ; offset: $4 (4)
  3203. reserved2                 ds.l    1                ; offset: $8 (8)
  3204. ioCompletion             ds.l    1                ; offset: $C (12)
  3205. ioResult                 ds.w    1                ; offset: $10 (16)
  3206. saveA5                     ds.l    1                ; offset: $12 (18)
  3207. reqCode                     ds.w    1                ; offset: $16 (22)
  3208. reserved                 ds.l    2                ; offset: $18 (24)
  3209. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3210. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3211. callID                     ds.l    1                ; offset: $26 (38)
  3212. identity                 ds.l    1                ; offset: $2A (42)
  3213. gReserved1                 ds.l    1                ; offset: $2E (46)
  3214. gReserved2                 ds.l    1                ; offset: $32 (50)
  3215. gReserved3                 ds.l    1                ; offset: $36 (54)
  3216. clientData                 ds.l    1                ; offset: $3A (58)
  3217. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  3218. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminator 
  3219. networkSpec                 ds.l    1                ; offset: $4A (74)        ;  <--  NetworkSpec 
  3220. sizeof                     EQU *                    ; size:   $4E (78)
  3221.                         ENDR
  3222. ;PathName in the path field must be set to nil. internetName should be large
  3223. ;enough to hold the internetName. InterNetname returned indicates path finder's
  3224. ;local internet (configured by administrator).
  3225. ;
  3226.  
  3227. ;GetDNodeInfo:
  3228. ;This call will return the information (internetName and descriptor)
  3229. ;for the given RLI of a DNode.
  3230. ;
  3231.  
  3232. DirGetDNodeInfoPB        RECORD 0
  3233. qLink                     ds.l    1                ; offset: $0 (0)
  3234. reserved1                 ds.l    1                ; offset: $4 (4)
  3235. reserved2                 ds.l    1                ; offset: $8 (8)
  3236. ioCompletion             ds.l    1                ; offset: $C (12)
  3237. ioResult                 ds.w    1                ; offset: $10 (16)
  3238. saveA5                     ds.l    1                ; offset: $12 (18)
  3239. reqCode                     ds.w    1                ; offset: $16 (22)
  3240. reserved                 ds.l    2                ; offset: $18 (24)
  3241. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3242. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3243. callID                     ds.l    1                ; offset: $26 (38)
  3244. identity                 ds.l    1                ; offset: $2A (42)
  3245. gReserved1                 ds.l    1                ; offset: $2E (46)
  3246. gReserved2                 ds.l    1                ; offset: $32 (50)
  3247. gReserved3                 ds.l    1                ; offset: $36 (54)
  3248. clientData                 ds.l    1                ; offset: $3A (58)
  3249. pRLI                     ds.l    1                ; offset: $3E (62)        ;   --> packed RLI whose info is requested 
  3250. descriptor                 ds.l    1                ; offset: $42 (66)        ;  <--  dNode descriptor 
  3251. networkSpec                 ds.l    1                ; offset: $46 (70)        ;  <--  cluster's networkSpec if kIsCluster 
  3252. sizeof                     EQU *                    ; size:   $4A (74)
  3253.                         ENDR
  3254. ;If DnodeNumber is set to a non zero value, path should be set to nil.
  3255. ;if DnodeNumber is set to zero, pathName should point to a packed path name.
  3256. ;internetName should be large enough to hold
  3257. ;the internetName. (If the internetName is same as the one got by
  3258. ;GetLocalInternetName call, it indicates cluster is reachable  without
  3259. ;forwarders, --> Tell me if I am wrong)
  3260. ;
  3261.  
  3262.  
  3263. ;DirCreatePersonalDirectory:
  3264. ;A new  personal catalog can be created by specifying an FSSpec for
  3265. ;the file. If a file already exists dupFNErr will be returned. This call is
  3266. ;supported 'synchronous' mode only.
  3267. ;
  3268.  
  3269. DirCreatePersonalDirectoryPB RECORD 0
  3270. qLink                     ds.l    1                ; offset: $0 (0)
  3271. reserved1                 ds.l    1                ; offset: $4 (4)
  3272. reserved2                 ds.l    1                ; offset: $8 (8)
  3273. ioCompletion             ds.l    1                ; offset: $C (12)
  3274. ioResult                 ds.w    1                ; offset: $10 (16)
  3275. saveA5                     ds.l    1                ; offset: $12 (18)
  3276. reqCode                     ds.w    1                ; offset: $16 (22)
  3277. reserved                 ds.l    2                ; offset: $18 (24)
  3278. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3279. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3280. callID                     ds.l    1                ; offset: $26 (38)
  3281. identity                 ds.l    1                ; offset: $2A (42)
  3282. gReserved1                 ds.l    1                ; offset: $2E (46)
  3283. gReserved2                 ds.l    1                ; offset: $32 (50)
  3284. gReserved3                 ds.l    1                ; offset: $36 (54)
  3285. clientData                 ds.l    1                ; offset: $3A (58)
  3286. fsSpec                     ds.l    1                ; offset: $3E (62)        ;   --> FSSpec for the Personal Catalog 
  3287. fdType                     ds.l    1                ; offset: $42 (66)        ;   --> file type for the Personal Catalog 
  3288. fdCreator                 ds.l    1                ; offset: $46 (70)        ;   --> file creator for the Personal Catalog 
  3289. sizeof                     EQU *                    ; size:   $4A (74)
  3290.                         ENDR
  3291. ;DirOpenPersonalDirectory:
  3292. ;An existing personal catalog can be opened using this call.
  3293. ;User can specify the personal catalog by FSSpec for the AddressBook file.
  3294. ;'accessRequested' field specifies open permissions. 'fsRdPerm'  & 'fsRdWrPerm'
  3295. ;are the only accepted open modes for the address book.
  3296. ;When the call completes successfully, a dsRefNum will be returned. The 'dsRefNum'
  3297. ;field is in the DSParamBlockHeader. In addittion 'accessGranted' indicates
  3298. ;actual permission with personal catalog is opened and 'features' indicate the capabilty flags
  3299. ;associated with the personal catalog.
  3300. ;This call is supported 'synchronous' mode only.
  3301. ;
  3302.  
  3303.  
  3304. DirOpenPersonalDirectoryPB RECORD 0
  3305. qLink                     ds.l    1                ; offset: $0 (0)
  3306. reserved1                 ds.l    1                ; offset: $4 (4)
  3307. reserved2                 ds.l    1                ; offset: $8 (8)
  3308. ioCompletion             ds.l    1                ; offset: $C (12)
  3309. ioResult                 ds.w    1                ; offset: $10 (16)
  3310. saveA5                     ds.l    1                ; offset: $12 (18)
  3311. reqCode                     ds.w    1                ; offset: $16 (22)
  3312. reserved                 ds.l    2                ; offset: $18 (24)
  3313. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3314. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3315. callID                     ds.l    1                ; offset: $26 (38)
  3316. identity                 ds.l    1                ; offset: $2A (42)
  3317. gReserved1                 ds.l    1                ; offset: $2E (46)
  3318. gReserved2                 ds.l    1                ; offset: $32 (50)
  3319. gReserved3                 ds.l    1                ; offset: $36 (54)
  3320. clientData                 ds.l    1                ; offset: $3A (58)
  3321. fsSpec                     ds.l    1                ; offset: $3E (62)        ;   --> Open an existing Personal Catalog 
  3322. accessRequested             ds.b    1                ; offset: $42 (66)        ;   --> Open: permissions Requested(byte)
  3323. accessGranted             ds.b    1                ; offset: $43 (67)        ;   <-- Open: permissions (byte) (Granted)
  3324. features                 ds.l    1                ; offset: $44 (68)        ;  <--  features for Personal Catalog 
  3325. sizeof                     EQU *                    ; size:   $48 (72)
  3326.                         ENDR
  3327. ;DirClosePersonalDirectory: This call lets a client close AddressBook opened by DirOpenPersonalDirectory.
  3328. ;The Personal Catalog specified by the 'dsRefNum' will be closed.
  3329. ;This call is supported 'synchronous' mode only.
  3330. ;
  3331.  
  3332. DirClosePersonalDirectoryPB RECORD 0
  3333. qLink                     ds.l    1                ; offset: $0 (0)
  3334. reserved1                 ds.l    1                ; offset: $4 (4)
  3335. reserved2                 ds.l    1                ; offset: $8 (8)
  3336. ioCompletion             ds.l    1                ; offset: $C (12)
  3337. ioResult                 ds.w    1                ; offset: $10 (16)
  3338. saveA5                     ds.l    1                ; offset: $12 (18)
  3339. reqCode                     ds.w    1                ; offset: $16 (22)
  3340. reserved                 ds.l    2                ; offset: $18 (24)
  3341. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3342. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3343. callID                     ds.l    1                ; offset: $26 (38)
  3344. identity                 ds.l    1                ; offset: $2A (42)
  3345. gReserved1                 ds.l    1                ; offset: $2E (46)
  3346. gReserved2                 ds.l    1                ; offset: $32 (50)
  3347. gReserved3                 ds.l    1                ; offset: $36 (54)
  3348. clientData                 ds.l    1                ; offset: $3A (58)
  3349. sizeof                     EQU *                    ; size:   $3E (62)
  3350.                         ENDR
  3351.  
  3352. ;DirMakePersonalDirectoryRLI: With this call a client can make an RLI
  3353. ;for a Personal Catalog opened by DirOpenPersonalDirectory Call.
  3354. ;A packed RLI is created for the Personal Catalog specified by the 'dsRefNum'.
  3355. ;If a client has a need to make the AddressBook reference to persistent
  3356. ;acrross boots it should make use of this call. In the current implementaion
  3357. ;PackedRLI has an embeeded System7.0 'alias'. If in later time
  3358. ;If client has a need to make reference to the AddressBook, it must use
  3359. ;ADAPLibrary call 'DUExtractAlias' and resole the 'alias' to 'FSSpec' and
  3360. ;make DirOpenPersonalDirectory call to get a 'dsRefNum'.
  3361. ;  'fromFSSpec'            FSPecPtr from which relative alias to be created. If nil,
  3362. ;                        absolute alias is created.
  3363. ; 'pRLIBufferSize' indicates the size of buffer pointed by 'pRLI'
  3364. ; 'pRLISize'    indicates the actual length of 'pRLI'. If the call
  3365. ;                        fails with 'kOCEMoreData' error a client can reissue
  3366. ;                    this call with a larger buffer of this length.
  3367. ;  'pRLI' is pointer to the buffer in which 'PackedRLI' is
  3368. ;  returned.
  3369. ;This call is supported in 'synchronous' mode only.
  3370. ;
  3371.  
  3372. DirMakePersonalDirectoryRLIPB RECORD 0
  3373. qLink                     ds.l    1                ; offset: $0 (0)
  3374. reserved1                 ds.l    1                ; offset: $4 (4)
  3375. reserved2                 ds.l    1                ; offset: $8 (8)
  3376. ioCompletion             ds.l    1                ; offset: $C (12)
  3377. ioResult                 ds.w    1                ; offset: $10 (16)
  3378. saveA5                     ds.l    1                ; offset: $12 (18)
  3379. reqCode                     ds.w    1                ; offset: $16 (22)
  3380. reserved                 ds.l    2                ; offset: $18 (24)
  3381. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3382. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3383. callID                     ds.l    1                ; offset: $26 (38)
  3384. identity                 ds.l    1                ; offset: $2A (42)
  3385. gReserved1                 ds.l    1                ; offset: $2E (46)
  3386. gReserved2                 ds.l    1                ; offset: $32 (50)
  3387. gReserved3                 ds.l    1                ; offset: $36 (54)
  3388. clientData                 ds.l    1                ; offset: $3A (58)
  3389. fromFSSpec                 ds.l    1                ; offset: $3E (62)        ;   --> FSSpec for creating relative alia 
  3390. pRLIBufferSize             ds.w    1                ; offset: $42 (66)        ;   --> Length of 'pRLI' buffer 
  3391. pRLISize                 ds.w    1                ; offset: $44 (68)        ;  <--  Length of actual 'pRLI' 
  3392. pRLI                     ds.l    1                ; offset: $46 (70)        ;  <--  pRLI for the specified AddressBook 
  3393. sizeof                     EQU *                    ; size:   $4A (74)
  3394.                         ENDR
  3395.  
  3396. ; *****************************************************************************
  3397. ;The calls described below apply only for CSAM Drivers:
  3398. ;
  3399. ;The following three calls provide capability to Install/Remove a CSAM at RunTime.
  3400. ;    DirAddDSAM
  3401. ;    DirRemoveDSAM
  3402. ;    DirInstantiateDSAM
  3403. ;
  3404. ;The following two calls provide capability to Install/Remove a CSAM Catalog at RunTime.
  3405. ;    DirAddDSAMDirectory
  3406. ;    DirRemoveDirectory
  3407. ;
  3408. ;DirGetDirectoryIcon call is used by clients to get any special icon associated
  3409. ;with a CSAM catalog.
  3410. ;
  3411. ;****************************************************************************
  3412.  
  3413.  
  3414. ;DirAddDSAM: This call can be used to inorm the availability of a CSAM file
  3415. ;after discovering the CSAM file.
  3416. ;    dsamName -> is generic CSAM name e.g. Untitled X.500 directory
  3417. ;    dsamSignature -> could be generic CSAM kind e.g. 'X500'.
  3418. ;    fsSpec -> is the FileSpec for the file containing CSAM resources.
  3419. ;If the call is successfull 'DSAMRecordCID' will be returned. If the
  3420. ;call returns 'daDSAMRecordCIDExists', record was already there and
  3421. ;'dsamRecordCID' will be returned.
  3422. ;This call can be done only in synchronous mode.
  3423. ;
  3424.  
  3425. DirAddDSAMPB            RECORD 0
  3426. qLink                     ds.l    1                ; offset: $0 (0)
  3427. reserved1                 ds.l    1                ; offset: $4 (4)
  3428. reserved2                 ds.l    1                ; offset: $8 (8)
  3429. ioCompletion             ds.l    1                ; offset: $C (12)
  3430. ioResult                 ds.w    1                ; offset: $10 (16)
  3431. saveA5                     ds.l    1                ; offset: $12 (18)
  3432. reqCode                     ds.w    1                ; offset: $16 (22)
  3433. reserved                 ds.l    2                ; offset: $18 (24)
  3434. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3435. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3436. callID                     ds.l    1                ; offset: $26 (38)
  3437. identity                 ds.l    1                ; offset: $2A (42)
  3438. gReserved1                 ds.l    1                ; offset: $2E (46)
  3439. gReserved2                 ds.l    1                ; offset: $32 (50)
  3440. gReserved3                 ds.l    1                ; offset: $36 (54)
  3441. clientData                 ds.l    1                ; offset: $3A (58)
  3442. dsamRecordCID             ds        CreationID        ; offset: $3E (62)        ;  <--  CreationID for the CSAM record 
  3443. dsamName                 ds.l    1                ; offset: $46 (70)        ;   --> CSAM name 
  3444. dsamKind                 ds.l    1                ; offset: $4A (74)        ;   --> CSAM kind 
  3445. fsSpec                     ds.l    1                ; offset: $4E (78)        ;   --> FSSpec for the file containing CSAM 
  3446. sizeof                     EQU *                    ; size:   $52 (82)
  3447.                         ENDR
  3448. ;DirInstantiateDSAM: This call should be used by the CSAM driver in response
  3449. ;Driver Open call to indicate the toolbox about the availability of the CSAM.
  3450. ;    dsamName -> is generic CSAM name e.g. Untitled X.500 directory
  3451. ;    dsamKind -> could be generic CSAM kind e.g. 'X500'.
  3452. ;    dsamData -> pointer to private DSAMData. This will be paased back to the CSAM
  3453. ;    when the CSAM functions (DSAMDirProc,DSAMDirParseProc, DSAMAuthProc) are called.
  3454. ;    CSAM should already be setup using DirAddDSAM call.
  3455. ;    DSAMDirProc -> This procedure will be called when  any catalog service
  3456. ;    call intended for the CSAM (other then parse calls)
  3457. ;    DSAMDirParseProc -> This procedure will be called when any of the parse calls
  3458. ;    are called.
  3459. ;    DSAMAuthProc -> This procedure will be called when any of the Authentication Calls
  3460. ;    are made to the CSAM. If the CSAM does not support authentication, this can be nil.
  3461. ;This call can be done only in synchronous mode.
  3462. ;
  3463.  
  3464. ; typedef DSAMDirUPP                     DSAMDirProc
  3465.  
  3466. ; typedef DSAMDirParseUPP                 DSAMDirParseProc
  3467.  
  3468. ; typedef DSAMAuthUPP                     DSAMAuthProc
  3469.  
  3470. DirInstantiateDSAMPB    RECORD 0
  3471. qLink                     ds.l    1                ; offset: $0 (0)
  3472. reserved1                 ds.l    1                ; offset: $4 (4)
  3473. reserved2                 ds.l    1                ; offset: $8 (8)
  3474. ioCompletion             ds.l    1                ; offset: $C (12)
  3475. ioResult                 ds.w    1                ; offset: $10 (16)
  3476. saveA5                     ds.l    1                ; offset: $12 (18)
  3477. reqCode                     ds.w    1                ; offset: $16 (22)
  3478. reserved                 ds.l    2                ; offset: $18 (24)
  3479. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3480. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3481. callID                     ds.l    1                ; offset: $26 (38)
  3482. identity                 ds.l    1                ; offset: $2A (42)
  3483. gReserved1                 ds.l    1                ; offset: $2E (46)
  3484. gReserved2                 ds.l    1                ; offset: $32 (50)
  3485. gReserved3                 ds.l    1                ; offset: $36 (54)
  3486. clientData                 ds.l    1                ; offset: $3A (58)
  3487. dsamName                 ds.l    1                ; offset: $3E (62)        ;   --> dsamName name 
  3488. dsamKind                 ds.l    1                ; offset: $42 (66)        ;   --> DSAMKind 
  3489. dsamData                 ds.l    1                ; offset: $46 (70)        ;   --> dsamData  
  3490. dsamDirProc                 ds.l    1                ; offset: $4A (74)        ;   --> of type DSAMDirProc: for catalog service calls 
  3491. dsamDirParseProc         ds.l    1                ; offset: $4E (78)        ;   --> of type DSAMDirParseProc: for catalog service parse calls 
  3492. dsamAuthProc             ds.l    1                ; offset: $52 (82)        ;   --> of type DSAMAuthProc: for authetication service calls 
  3493. sizeof                     EQU *                    ; size:   $56 (86)
  3494.                         ENDR
  3495.  
  3496. ;DirRemoveDSAM: This call can be used to remove  a CSAM file from the OCE Setup.
  3497. ;    dsamRecordCID -> is the creationID of the CSAM record.
  3498. ;This call can be made only in synchronous mode.
  3499. ;
  3500.  
  3501. DirRemoveDSAMPB            RECORD 0
  3502. qLink                     ds.l    1                ; offset: $0 (0)
  3503. reserved1                 ds.l    1                ; offset: $4 (4)
  3504. reserved2                 ds.l    1                ; offset: $8 (8)
  3505. ioCompletion             ds.l    1                ; offset: $C (12)
  3506. ioResult                 ds.w    1                ; offset: $10 (16)
  3507. saveA5                     ds.l    1                ; offset: $12 (18)
  3508. reqCode                     ds.w    1                ; offset: $16 (22)
  3509. reserved                 ds.l    2                ; offset: $18 (24)
  3510. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3511. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3512. callID                     ds.l    1                ; offset: $26 (38)
  3513. identity                 ds.l    1                ; offset: $2A (42)
  3514. gReserved1                 ds.l    1                ; offset: $2E (46)
  3515. gReserved2                 ds.l    1                ; offset: $32 (50)
  3516. gReserved3                 ds.l    1                ; offset: $36 (54)
  3517. clientData                 ds.l    1                ; offset: $3A (58)
  3518. dsamRecordCID             ds        CreationID        ; offset: $3E (62)        ;  <--  CreationID for the CSAM record 
  3519. sizeof                     EQU *                    ; size:   $46 (70)
  3520.                         ENDR
  3521.  
  3522. ;DirAddDSAMDirectory: This call can be used to inorm the availability of a CSAM catalog.
  3523. ;    dsamRecordCID ->  recordID for the CSAM serving this catalog
  3524. ;    directoryName ->  name of the catalog
  3525. ;    discriminator -> discriminator for the catalog
  3526. ;    directoryRecordCID -> If the call is successful, creationID for the record will
  3527. ;                            be returned.
  3528. ;
  3529.  
  3530. DirAddDSAMDirectoryPB    RECORD 0
  3531. qLink                     ds.l    1                ; offset: $0 (0)
  3532. reserved1                 ds.l    1                ; offset: $4 (4)
  3533. reserved2                 ds.l    1                ; offset: $8 (8)
  3534. ioCompletion             ds.l    1                ; offset: $C (12)
  3535. ioResult                 ds.w    1                ; offset: $10 (16)
  3536. saveA5                     ds.l    1                ; offset: $12 (18)
  3537. reqCode                     ds.w    1                ; offset: $16 (22)
  3538. reserved                 ds.l    2                ; offset: $18 (24)
  3539. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3540. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3541. callID                     ds.l    1                ; offset: $26 (38)
  3542. identity                 ds.l    1                ; offset: $2A (42)
  3543. gReserved1                 ds.l    1                ; offset: $2E (46)
  3544. gReserved2                 ds.l    1                ; offset: $32 (50)
  3545. gReserved3                 ds.l    1                ; offset: $36 (54)
  3546. clientData                 ds.l    1                ; offset: $3A (58)
  3547. dsamRecordCID             ds        CreationID        ; offset: $3E (62)        ;   --> CreationID for the CSAM record 
  3548. directoryName             ds.l    1                ; offset: $46 (70)        ;   --> catalog name 
  3549. discriminator             ds        DirDiscriminator ; offset: $4A (74)        ;   --> catalog discriminator 
  3550. features                 ds.l    1                ; offset: $52 (82)        ;   --> capabilty flags for the catalog 
  3551. directoryRecordCID         ds        CreationID        ; offset: $56 (86)        ;  <--  creationID for the catalog record 
  3552. sizeof                     EQU *                    ; size:   $5E (94)
  3553.                         ENDR
  3554. ;DirRemoveDirectory: This call can be used to inform the toolbox that
  3555. ;catalog specified by 'directoryRecordCID'
  3556. ;
  3557.  
  3558. DirRemoveDirectoryPB    RECORD 0
  3559. qLink                     ds.l    1                ; offset: $0 (0)
  3560. reserved1                 ds.l    1                ; offset: $4 (4)
  3561. reserved2                 ds.l    1                ; offset: $8 (8)
  3562. ioCompletion             ds.l    1                ; offset: $C (12)
  3563. ioResult                 ds.w    1                ; offset: $10 (16)
  3564. saveA5                     ds.l    1                ; offset: $12 (18)
  3565. reqCode                     ds.w    1                ; offset: $16 (22)
  3566. reserved                 ds.l    2                ; offset: $18 (24)
  3567. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3568. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3569. callID                     ds.l    1                ; offset: $26 (38)
  3570. identity                 ds.l    1                ; offset: $2A (42)
  3571. gReserved1                 ds.l    1                ; offset: $2E (46)
  3572. gReserved2                 ds.l    1                ; offset: $32 (50)
  3573. gReserved3                 ds.l    1                ; offset: $36 (54)
  3574. clientData                 ds.l    1                ; offset: $3A (58)
  3575. directoryRecordCID         ds        CreationID        ; offset: $3E (62)        ;   --> creationID for the catalog record 
  3576. sizeof                     EQU *                    ; size:   $46 (70)
  3577.                         ENDR
  3578. ; * DSGetExtendedDirectoriesInfo::  This call can be used to get
  3579. ; * the information of various foreign catalogs supported.
  3580. ; * Typically a DE Template  may make this call to create a
  3581. ; * Address template or a Gateway may make this call to findout
  3582. ; * catalog name space in which MSAM may would support. 
  3583. ; * Client will supply a buffer pointed by 'bufferPtr' of size 'bufferLength'. 
  3584. ; * When the call completes with 'daMoreData' error, client can examine 'totalEntries'
  3585. ; * returned and reissue the call with increaing buffer.
  3586. ; * Toolbox will findout the private information of each of the Foreign Catalogs
  3587. ; * by polling CSAM's, Gateways, and MnMServers. The Information returned
  3588. ; * for each catalog will be packed in the format: 
  3589. ; * typedef struct EachDirectoryData {
  3590. ; *  PackedRLI                        pRLI;           //  packed RLI for the catalog
  3591. ; *  OSType                            entnType;        //  Entn Type
  3592. ; *  long                            hasMailSlot;   //  If this catalog has mail slot this will be 1 otherwise zero
  3593. ; *    ProtoRString                    RealName;      //  Packed RString for Real Name (padded to even boundary) 
  3594. ; *    ProtoRString                    comment;       //  Packed RString holding any comment for Display (padded to even boundary)
  3595. ; *    long                            length;        //  data length
  3596. ; *    char                            data[length];  //  data padded to even boundary
  3597. ; * };
  3598. ; *
  3599. ; *
  3600. ; *
  3601. ; * typedef struct myData {
  3602. ; *      EachDirectoryData    data[numberOfEntries];    // data packed in the above format
  3603. ; *    };
  3604. ; *
  3605.  
  3606. DirGetExtendedDirectoriesInfoPB RECORD 0
  3607. qLink                     ds.l    1                ; offset: $0 (0)
  3608. reserved1                 ds.l    1                ; offset: $4 (4)
  3609. reserved2                 ds.l    1                ; offset: $8 (8)
  3610. ioCompletion             ds.l    1                ; offset: $C (12)
  3611. ioResult                 ds.w    1                ; offset: $10 (16)
  3612. saveA5                     ds.l    1                ; offset: $12 (18)
  3613. reqCode                     ds.w    1                ; offset: $16 (22)
  3614. reserved                 ds.l    2                ; offset: $18 (24)
  3615. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3616. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3617. callID                     ds.l    1                ; offset: $26 (38)
  3618. identity                 ds.l    1                ; offset: $2A (42)
  3619. gReserved1                 ds.l    1                ; offset: $2E (46)
  3620. gReserved2                 ds.l    1                ; offset: $32 (50)
  3621. gReserved3                 ds.l    1                ; offset: $36 (54)
  3622. clientData                 ds.l    1                ; offset: $3A (58)
  3623. buffer                     ds.l    1                ; offset: $3E (62)        ;   --> Pointer to a buufer where data will be returned 
  3624. bufferSize                 ds.l    1                ; offset: $42 (66)        ;   --> Length of the buffer, Length of actual data will be returned here 
  3625. totalEntries             ds.l    1                ; offset: $46 (70)        ;  <--  Total Number of Catalogs found 
  3626. actualEntries             ds.l    1                ; offset: $4A (74)        ;  <--  Total Number of Catalogs entries returned 
  3627. sizeof                     EQU *                    ; size:   $4E (78)
  3628.                         ENDR
  3629. ;DirGetDirectoryIconPB: With this call a client can find out about
  3630. ;the icons supported by the Catalog.
  3631. ;Both ADAP and Personal Catalog will not support this call for now.
  3632. ;A CSAM can support a call so that DE Extension can use this
  3633. ;call to find appropriate Icons.
  3634. ;
  3635. ;Returns kOCEBufferTooSmall if icon is too small, but will update iconSize.
  3636. ;
  3637.  
  3638. DirGetDirectoryIconPB    RECORD 0
  3639. qLink                     ds.l    1                ; offset: $0 (0)
  3640. reserved1                 ds.l    1                ; offset: $4 (4)
  3641. reserved2                 ds.l    1                ; offset: $8 (8)
  3642. ioCompletion             ds.l    1                ; offset: $C (12)
  3643. ioResult                 ds.w    1                ; offset: $10 (16)
  3644. saveA5                     ds.l    1                ; offset: $12 (18)
  3645. reqCode                     ds.w    1                ; offset: $16 (22)
  3646. reserved                 ds.l    2                ; offset: $18 (24)
  3647. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3648. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3649. callID                     ds.l    1                ; offset: $26 (38)
  3650. identity                 ds.l    1                ; offset: $2A (42)
  3651. gReserved1                 ds.l    1                ; offset: $2E (46)
  3652. gReserved2                 ds.l    1                ; offset: $32 (50)
  3653. gReserved3                 ds.l    1                ; offset: $36 (54)
  3654. clientData                 ds.l    1                ; offset: $3A (58)
  3655. pRLI                     ds.l    1                ; offset: $3E (62)        ;   --> packed RLI for the catalog 
  3656. iconType                 ds.l    1                ; offset: $42 (66)        ;   --> Type of Icon requested 
  3657. iconBuffer                 ds.l    1                ; offset: $46 (70)        ;   --> Buffer to hold Icon Data 
  3658. bufferSize                 ds.l    1                ; offset: $4A (74)        ;   <-> size of buffer to hold icon data 
  3659. sizeof                     EQU *                    ; size:   $4E (78)
  3660.                         ENDR
  3661. ;DirGetOCESetupRefNum: This call will return 'dsRefnum' for the OCE Setup Personal Catalog
  3662. ;and oceSetupRecordCID for the oceSetup Record.
  3663. ;Clients interested in manipulating OCE Setup Personal Catalog directly should
  3664. ;make this call to get 'dsRefNum'.
  3665. ;'dsRefNum' will be returned in the standard field in the DirParamHeader.
  3666. ;
  3667.  
  3668. DirGetOCESetupRefNumPB    RECORD 0
  3669. qLink                     ds.l    1                ; offset: $0 (0)
  3670. reserved1                 ds.l    1                ; offset: $4 (4)
  3671. reserved2                 ds.l    1                ; offset: $8 (8)
  3672. ioCompletion             ds.l    1                ; offset: $C (12)
  3673. ioResult                 ds.w    1                ; offset: $10 (16)
  3674. saveA5                     ds.l    1                ; offset: $12 (18)
  3675. reqCode                     ds.w    1                ; offset: $16 (22)
  3676. reserved                 ds.l    2                ; offset: $18 (24)
  3677. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3678. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3679. callID                     ds.l    1                ; offset: $26 (38)
  3680. identity                 ds.l    1                ; offset: $2A (42)
  3681. gReserved1                 ds.l    1                ; offset: $2E (46)
  3682. gReserved2                 ds.l    1                ; offset: $32 (50)
  3683. gReserved3                 ds.l    1                ; offset: $36 (54)
  3684. clientData                 ds.l    1                ; offset: $3A (58)
  3685. oceSetupRecordCID         ds        CreationID        ; offset: $3E (62)        ;  --> creationID for the catalog record 
  3686. sizeof                     EQU *                    ; size:   $46 (70)
  3687.                         ENDR
  3688.  
  3689. ; ****************************************************************************
  3690. ;  Catalog and Authentication control blocks and operation definitions 
  3691. AuthParamBlock            RECORD 0
  3692. qLink                     ds.l    1                ; offset: $0 (0)
  3693. reserved1                 ds.l    1                ; offset: $4 (4)
  3694. reserved2                 ds.l    1                ; offset: $8 (8)
  3695. ioCompletion             ds.l    1                ; offset: $C (12)
  3696. ioResult                 ds.w    1                ; offset: $10 (16)
  3697. saveA5                     ds.l    1                ; offset: $12 (18)
  3698. reqCode                     ds.w    1                ; offset: $16 (22)
  3699. reserved                 ds.l    2                ; offset: $18 (24)
  3700. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3701. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3702. callID                     ds.l    1                ; offset: $26 (38)
  3703. identity                 ds.l    1                ; offset: $2A (42)
  3704. gReserved1                 ds.l    1                ; offset: $2E (46)
  3705. gReserved2                 ds.l    1                ; offset: $32 (50)
  3706. gReserved3                 ds.l    1                ; offset: $36 (54)
  3707. clientData                 ds.l    1                ; offset: $3A (58)
  3708.                          ORG 0
  3709. bindIdentityPB             ds        AuthBindSpecificIdentityPB ; offset: $0 (0)
  3710.                          ORG 0
  3711. unbindIdentityPB         ds        AuthUnbindSpecificIdentityPB ; offset: $0 (0)
  3712.                          ORG 0
  3713. resolveCreationIDPB         ds        AuthResolveCreationIDPB ; offset: $0 (0)
  3714.                          ORG 0
  3715. getIdentityInfoPB         ds        AuthGetSpecificIdentityInfoPB ; offset: $0 (0)
  3716.                          ORG 0
  3717. addKeyPB                 ds        AuthAddKeyPB    ; offset: $0 (0)
  3718.                          ORG 0
  3719. changeKeyPB                 ds        AuthChangeKeyPB ; offset: $0 (0)
  3720.                          ORG 0
  3721. deleteKeyPB                 ds        AuthDeleteKeyPB ; offset: $0 (0)
  3722.                          ORG 0
  3723. passwordToKeyPB             ds        AuthPasswordToKeyPB ; offset: $0 (0)
  3724.                          ORG 0
  3725. getCredentialsPB         ds        AuthGetCredentialsPB ; offset: $0 (0)
  3726.                          ORG 0
  3727. decryptCredentialsPB     ds        AuthDecryptCredentialsPB ; offset: $0 (0)
  3728.                          ORG 0
  3729. makeChallengePB             ds        AuthMakeChallengePB ; offset: $0 (0)
  3730.                          ORG 0
  3731. makeReplyPB                 ds        AuthMakeReplyPB ; offset: $0 (0)
  3732.                          ORG 0
  3733. verifyReplyPB             ds        AuthVerifyReplyPB ; offset: $0 (0)
  3734.                          ORG 0
  3735. getUTCTimePB             ds        AuthGetUTCTimePB ; offset: $0 (0)
  3736.                          ORG 0
  3737. makeProxyPB                 ds        AuthMakeProxyPB ; offset: $0 (0)
  3738.                          ORG 0
  3739. tradeProxyForCredentialsPB  ds    AuthTradeProxyForCredentialsPB ; offset: $0 (0)
  3740.                          ORG 0
  3741. getLocalIdentityPB         ds        AuthGetLocalIdentityPB ; offset: $0 (0)
  3742.                          ORG 0
  3743. unLockLocalIdentityPB     ds        AuthUnlockLocalIdentityPB ; offset: $0 (0)
  3744.                          ORG 0
  3745. lockLocalIdentityPB         ds        AuthLockLocalIdentityPB ; offset: $0 (0)
  3746.                          ORG 0
  3747. localIdentityQInstallPB     ds        AuthAddToLocalIdentityQueuePB ; offset: $0 (0)
  3748.                          ORG 0
  3749. localIdentityQRemovePB     ds        AuthRemoveFromLocalIdentityQueuePB ; offset: $0 (0)
  3750.                          ORG 0
  3751. setupLocalIdentityPB     ds        AuthSetupLocalIdentityPB ; offset: $0 (0)
  3752.                          ORG 0
  3753. changeLocalIdentityPB     ds        AuthChangeLocalIdentityPB ; offset: $0 (0)
  3754.                          ORG 0
  3755. removeLocalIdentityPB     ds        AuthRemoveLocalIdentityPB ; offset: $0 (0)
  3756.                          ORG 0
  3757. setupDirectoryIdentityPB  ds    OCESetupAddDirectoryInfoPB ; offset: $0 (0)
  3758.                          ORG 0
  3759. changeDirectoryIdentityPB  ds    OCESetupChangeDirectoryInfoPB ; offset: $0 (0)
  3760.                          ORG 0
  3761. removeDirectoryIdentityPB  ds    OCESetupRemoveDirectoryInfoPB ; offset: $0 (0)
  3762.                          ORG 0
  3763. getDirectoryIdentityInfoPB  ds    OCESetupGetDirectoryInfoPB ; offset: $0 (0)
  3764.                          ORG 98
  3765. sizeof                     EQU *                    ; size:   $62 (98)
  3766.                         ENDR
  3767. DirParamBlock            RECORD 0
  3768. qLink                     ds.l    1                ; offset: $0 (0)
  3769. reserved1                 ds.l    1                ; offset: $4 (4)
  3770. reserved2                 ds.l    1                ; offset: $8 (8)
  3771. ioCompletion             ds.l    1                ; offset: $C (12)
  3772. ioResult                 ds.w    1                ; offset: $10 (16)
  3773. saveA5                     ds.l    1                ; offset: $12 (18)
  3774. reqCode                     ds.w    1                ; offset: $16 (22)
  3775. reserved                 ds.l    2                ; offset: $18 (24)
  3776. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3777. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3778. callID                     ds.l    1                ; offset: $26 (38)
  3779. identity                 ds.l    1                ; offset: $2A (42)
  3780. gReserved1                 ds.l    1                ; offset: $2E (46)
  3781. gReserved2                 ds.l    1                ; offset: $32 (50)
  3782. gReserved3                 ds.l    1                ; offset: $36 (54)
  3783. clientData                 ds.l    1                ; offset: $3A (58)
  3784.                          ORG 0
  3785. addRecordPB                 ds        DirAddRecordPB ; offset: $0 (0)
  3786.                          ORG 0
  3787. deleteRecordPB             ds        DirDeleteRecordPB ; offset: $0 (0)
  3788.                          ORG 0
  3789. enumerateGetPB             ds        DirEnumerateGetPB ; offset: $0 (0)
  3790.                          ORG 0
  3791. enumerateParsePB         ds        DirEnumerateParsePB ; offset: $0 (0)
  3792.                          ORG 0
  3793. findRecordGetPB             ds        DirFindRecordGetPB ; offset: $0 (0)
  3794.                          ORG 0
  3795. findRecordParsePB         ds        DirFindRecordParsePB ; offset: $0 (0)
  3796.                          ORG 0
  3797. lookupGetPB                 ds        DirLookupGetPB ; offset: $0 (0)
  3798.                          ORG 0
  3799. lookupParsePB             ds        DirLookupParsePB ; offset: $0 (0)
  3800.                          ORG 0
  3801. addAttributeValuePB         ds        DirAddAttributeValuePB ; offset: $0 (0)
  3802.                          ORG 0
  3803. deleteAttributeTypePB     ds        DirDeleteAttributeTypePB ; offset: $0 (0)
  3804.                          ORG 0
  3805. deleteAttributeValuePB     ds        DirDeleteAttributeValuePB ; offset: $0 (0)
  3806.                          ORG 0
  3807. changeAttributeValuePB     ds        DirChangeAttributeValuePB ; offset: $0 (0)
  3808.                          ORG 0
  3809. verifyAttributeValuePB     ds        DirVerifyAttributeValuePB ; offset: $0 (0)
  3810.                          ORG 0
  3811. findValuePB                 ds        DirFindValuePB ; offset: $0 (0)
  3812.                          ORG 0
  3813. enumeratePseudonymGetPB     ds        DirEnumeratePseudonymGetPB ; offset: $0 (0)
  3814.                          ORG 0
  3815. enumeratePseudonymParsePB  ds    DirEnumeratePseudonymParsePB ; offset: $0 (0)
  3816.                          ORG 0
  3817. addPseudonymPB             ds        DirAddPseudonymPB ; offset: $0 (0)
  3818.                          ORG 0
  3819. deletePseudonymPB         ds        DirDeletePseudonymPB ; offset: $0 (0)
  3820.                          ORG 0
  3821. addAliasPB                 ds        DirAddAliasPB    ; offset: $0 (0)
  3822.                          ORG 0
  3823. enumerateAttributeTypesGetPB  ds DirEnumerateAttributeTypesGetPB ; offset: $0 (0)
  3824.                          ORG 0
  3825. enumerateAttributeTypesParsePB  ds DirEnumerateAttributeTypesParsePB ; offset: $0 (0)
  3826.                          ORG 0
  3827. getNameAndTypePB         ds        DirGetNameAndTypePB ; offset: $0 (0)
  3828.                          ORG 0
  3829. setNameAndTypePB         ds        DirSetNameAndTypePB ; offset: $0 (0)
  3830.                          ORG 0
  3831. getRecordMetaInfoPB         ds        DirGetRecordMetaInfoPB ; offset: $0 (0)
  3832.                          ORG 0
  3833. getDNodeMetaInfoPB         ds        DirGetDNodeMetaInfoPB ; offset: $0 (0)
  3834.                          ORG 0
  3835. getDirectoryInfoPB         ds        DirGetDirectoryInfoPB ; offset: $0 (0)
  3836.                          ORG 0
  3837. getDNodeAccessControlGetPB  ds    DirGetDNodeAccessControlGetPB ; offset: $0 (0)
  3838.                          ORG 0
  3839. getDNodeAccessControlParsePB  ds DirGetDNodeAccessControlParsePB ; offset: $0 (0)
  3840.                          ORG 0
  3841. getRecordAccessControlGetPB  ds    DirGetRecordAccessControlGetPB ; offset: $0 (0)
  3842.                          ORG 0
  3843. getRecordAccessControlParsePB  ds DirGetRecordAccessControlParsePB ; offset: $0 (0)
  3844.                          ORG 0
  3845. getAttributeAccessControlGetPB  ds DirGetAttributeAccessControlGetPB ; offset: $0 (0)
  3846.                          ORG 0
  3847. getAttributeAccessControlParsePB  ds DirGetAttributeAccessControlParsePB ; offset: $0 (0)
  3848.                          ORG 0
  3849. enumerateDirectoriesGetPB  ds    DirEnumerateDirectoriesGetPB ; offset: $0 (0)
  3850.                          ORG 0
  3851. enumerateDirectoriesParsePB  ds    DirEnumerateDirectoriesParsePB ; offset: $0 (0)
  3852.                          ORG 0
  3853. addADAPDirectoryPB         ds        DirAddADAPDirectoryPB ; offset: $0 (0)
  3854.                          ORG 0
  3855. removeDirectoryPB         ds        DirRemoveDirectoryPB ; offset: $0 (0)
  3856.                          ORG 0
  3857. netSearchADAPDirectoriesGetPB  ds DirNetSearchADAPDirectoriesGetPB ; offset: $0 (0)
  3858.                          ORG 0
  3859. netSearchADAPDirectoriesParsePB  ds DirNetSearchADAPDirectoriesParsePB ; offset: $0 (0)
  3860.                          ORG 0
  3861. findADAPDirectoryByNetSearchPB  ds DirFindADAPDirectoryByNetSearchPB ; offset: $0 (0)
  3862.                          ORG 0
  3863. mapDNodeNumberToPathNamePB  ds    DirMapDNodeNumberToPathNamePB ; offset: $0 (0)
  3864.                          ORG 0
  3865. mapPathNameToDNodeNumberPB  ds    DirMapPathNameToDNodeNumberPB ; offset: $0 (0)
  3866.                          ORG 0
  3867. getLocalNetworkSpecPB     ds        DirGetLocalNetworkSpecPB ; offset: $0 (0)
  3868.                          ORG 0
  3869. getDNodeInfoPB             ds        DirGetDNodeInfoPB ; offset: $0 (0)
  3870.                          ORG 0
  3871. createPersonalDirectoryPB  ds    DirCreatePersonalDirectoryPB ; offset: $0 (0)
  3872.                          ORG 0
  3873. openPersonalDirectoryPB     ds        DirOpenPersonalDirectoryPB ; offset: $0 (0)
  3874.                          ORG 0
  3875. closePersonalDirectoryPB  ds    DirClosePersonalDirectoryPB ; offset: $0 (0)
  3876.                          ORG 0
  3877. makePersonalDirectoryRLIPB  ds    DirMakePersonalDirectoryRLIPB ; offset: $0 (0)
  3878.                          ORG 0
  3879. addDSAMPB                 ds        DirAddDSAMPB    ; offset: $0 (0)
  3880.                          ORG 0
  3881. instantiateDSAMPB         ds        DirInstantiateDSAMPB ; offset: $0 (0)
  3882.                          ORG 0
  3883. removeDSAMPB             ds        DirRemoveDSAMPB ; offset: $0 (0)
  3884.                          ORG 0
  3885. addDSAMDirectoryPB         ds        DirAddDSAMDirectoryPB ; offset: $0 (0)
  3886.                          ORG 0
  3887. getExtendedDirectoriesInfoPB  ds DirGetExtendedDirectoriesInfoPB ; offset: $0 (0)
  3888.                          ORG 0
  3889. getDirectoryIconPB         ds        DirGetDirectoryIconPB ; offset: $0 (0)
  3890.                          ORG 0
  3891. dirGetOCESetupRefNumPB     ds        DirGetOCESetupRefNumPB ; offset: $0 (0)
  3892.                          ORG 0
  3893. abortPB                     ds        DirAbortPB        ; offset: $0 (0)
  3894.                          ORG 174
  3895. sizeof                     EQU *                    ; size:   $AE (174)
  3896.                         ENDR
  3897. ;
  3898. ; pascal OSErr AuthBindSpecificIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  3899. ;
  3900.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3901.         Macro
  3902.         _AuthBindSpecificIdentity
  3903.             move.w              #$0200,-(sp)
  3904.             dc.w                $AA5E
  3905.         EndM
  3906.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3907.         IMPORT_CFM_FUNCTION AuthBindSpecificIdentity
  3908.     ENDIF
  3909.  
  3910. ;
  3911. ; pascal OSErr AuthUnbindSpecificIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  3912. ;
  3913.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3914.         Macro
  3915.         _AuthUnbindSpecificIdentity
  3916.             move.w              #$0201,-(sp)
  3917.             dc.w                $AA5E
  3918.         EndM
  3919.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3920.         IMPORT_CFM_FUNCTION AuthUnbindSpecificIdentity
  3921.     ENDIF
  3922.  
  3923. ;
  3924. ; pascal OSErr AuthResolveCreationID(AuthParamBlockPtr paramBlock, Boolean async)
  3925. ;
  3926.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3927.         Macro
  3928.         _AuthResolveCreationID
  3929.             move.w              #$0202,-(sp)
  3930.             dc.w                $AA5E
  3931.         EndM
  3932.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3933.         IMPORT_CFM_FUNCTION AuthResolveCreationID
  3934.     ENDIF
  3935.  
  3936. ;
  3937. ; pascal OSErr AuthGetSpecificIdentityInfo(AuthParamBlockPtr paramBlock, Boolean async)
  3938. ;
  3939.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3940.         Macro
  3941.         _AuthGetSpecificIdentityInfo
  3942.             move.w              #$0203,-(sp)
  3943.             dc.w                $AA5E
  3944.         EndM
  3945.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3946.         IMPORT_CFM_FUNCTION AuthGetSpecificIdentityInfo
  3947.     ENDIF
  3948.  
  3949. ;
  3950. ; pascal OSErr AuthAddKey(AuthParamBlockPtr paramBlock, Boolean async)
  3951. ;
  3952.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3953.         Macro
  3954.         _AuthAddKey
  3955.             move.w              #$0207,-(sp)
  3956.             dc.w                $AA5E
  3957.         EndM
  3958.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3959.         IMPORT_CFM_FUNCTION AuthAddKey
  3960.     ENDIF
  3961.  
  3962. ;
  3963. ; pascal OSErr AuthChangeKey(AuthParamBlockPtr paramBlock, Boolean async)
  3964. ;
  3965.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3966.         Macro
  3967.         _AuthChangeKey
  3968.             move.w              #$0208,-(sp)
  3969.             dc.w                $AA5E
  3970.         EndM
  3971.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3972.         IMPORT_CFM_FUNCTION AuthChangeKey
  3973.     ENDIF
  3974.  
  3975. ;
  3976. ; pascal OSErr AuthDeleteKey(AuthParamBlockPtr paramBlock, Boolean async)
  3977. ;
  3978.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3979.         Macro
  3980.         _AuthDeleteKey
  3981.             move.w              #$0209,-(sp)
  3982.             dc.w                $AA5E
  3983.         EndM
  3984.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3985.         IMPORT_CFM_FUNCTION AuthDeleteKey
  3986.     ENDIF
  3987.  
  3988. ;
  3989. ; pascal OSErr AuthPasswordToKey(AuthParamBlockPtr paramBlock, Boolean async)
  3990. ;
  3991.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3992.         Macro
  3993.         _AuthPasswordToKey
  3994.             move.w              #$020A,-(sp)
  3995.             dc.w                $AA5E
  3996.         EndM
  3997.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3998.         IMPORT_CFM_FUNCTION AuthPasswordToKey
  3999.     ENDIF
  4000.  
  4001. ;
  4002. ; pascal OSErr AuthGetCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  4003. ;
  4004.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4005.         Macro
  4006.         _AuthGetCredentials
  4007.             move.w              #$020B,-(sp)
  4008.             dc.w                $AA5E
  4009.         EndM
  4010.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4011.         IMPORT_CFM_FUNCTION AuthGetCredentials
  4012.     ENDIF
  4013.  
  4014. ;
  4015. ; pascal OSErr AuthDecryptCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  4016. ;
  4017.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4018.         Macro
  4019.         _AuthDecryptCredentials
  4020.             move.w              #$020C,-(sp)
  4021.             dc.w                $AA5E
  4022.         EndM
  4023.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4024.         IMPORT_CFM_FUNCTION AuthDecryptCredentials
  4025.     ENDIF
  4026.  
  4027. ;
  4028. ; pascal OSErr AuthMakeChallenge(AuthParamBlockPtr paramBlock, Boolean async)
  4029. ;
  4030.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4031.         Macro
  4032.         _AuthMakeChallenge
  4033.             move.w              #$020F,-(sp)
  4034.             dc.w                $AA5E
  4035.         EndM
  4036.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4037.         IMPORT_CFM_FUNCTION AuthMakeChallenge
  4038.     ENDIF
  4039.  
  4040. ;
  4041. ; pascal OSErr AuthMakeReply(AuthParamBlockPtr paramBlock, Boolean async)
  4042. ;
  4043.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4044.         Macro
  4045.         _AuthMakeReply
  4046.             move.w              #$0210,-(sp)
  4047.             dc.w                $AA5E
  4048.         EndM
  4049.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4050.         IMPORT_CFM_FUNCTION AuthMakeReply
  4051.     ENDIF
  4052.  
  4053. ;
  4054. ; pascal OSErr AuthVerifyReply(AuthParamBlockPtr paramBlock, Boolean async)
  4055. ;
  4056.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4057.         Macro
  4058.         _AuthVerifyReply
  4059.             move.w              #$0211,-(sp)
  4060.             dc.w                $AA5E
  4061.         EndM
  4062.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4063.         IMPORT_CFM_FUNCTION AuthVerifyReply
  4064.     ENDIF
  4065.  
  4066. ;
  4067. ; pascal OSErr AuthGetUTCTime(AuthParamBlockPtr paramBlock, Boolean async)
  4068. ;
  4069.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4070.         Macro
  4071.         _AuthGetUTCTime
  4072.             move.w              #$021A,-(sp)
  4073.             dc.w                $AA5E
  4074.         EndM
  4075.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4076.         IMPORT_CFM_FUNCTION AuthGetUTCTime
  4077.     ENDIF
  4078.  
  4079. ;
  4080. ; pascal OSErr AuthMakeProxy(AuthParamBlockPtr paramBlock, Boolean async)
  4081. ;
  4082.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4083.         Macro
  4084.         _AuthMakeProxy
  4085.             move.w              #$0212,-(sp)
  4086.             dc.w                $AA5E
  4087.         EndM
  4088.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4089.         IMPORT_CFM_FUNCTION AuthMakeProxy
  4090.     ENDIF
  4091.  
  4092. ;
  4093. ; pascal OSErr AuthTradeProxyForCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  4094. ;
  4095.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4096.         Macro
  4097.         _AuthTradeProxyForCredentials
  4098.             move.w              #$0213,-(sp)
  4099.             dc.w                $AA5E
  4100.         EndM
  4101.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4102.         IMPORT_CFM_FUNCTION AuthTradeProxyForCredentials
  4103.     ENDIF
  4104.  
  4105. ;  Local Identity API 
  4106. ;
  4107. ; pascal OSErr AuthGetLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4108. ;
  4109.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4110.         Macro
  4111.         _AuthGetLocalIdentity
  4112.             move.w              #$0204,-(sp)
  4113.             dc.w                $AA5E
  4114.         EndM
  4115.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4116.         IMPORT_CFM_FUNCTION AuthGetLocalIdentity
  4117.     ENDIF
  4118.  
  4119. ;
  4120. ; pascal OSErr AuthUnlockLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4121. ;
  4122.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4123.         Macro
  4124.         _AuthUnlockLocalIdentity
  4125.             move.w              #$0214,-(sp)
  4126.             dc.w                $AA5E
  4127.         EndM
  4128.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4129.         IMPORT_CFM_FUNCTION AuthUnlockLocalIdentity
  4130.     ENDIF
  4131.  
  4132. ;
  4133. ; pascal OSErr AuthLockLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4134. ;
  4135.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4136.         Macro
  4137.         _AuthLockLocalIdentity
  4138.             move.w              #$0215,-(sp)
  4139.             dc.w                $AA5E
  4140.         EndM
  4141.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4142.         IMPORT_CFM_FUNCTION AuthLockLocalIdentity
  4143.     ENDIF
  4144.  
  4145. ;
  4146. ; pascal OSErr AuthAddToLocalIdentityQueue(AuthParamBlockPtr paramBlock, Boolean async)
  4147. ;
  4148.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4149.         Macro
  4150.         _AuthAddToLocalIdentityQueue
  4151.             move.w              #$0205,-(sp)
  4152.             dc.w                $AA5E
  4153.         EndM
  4154.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4155.         IMPORT_CFM_FUNCTION AuthAddToLocalIdentityQueue
  4156.     ENDIF
  4157.  
  4158. ;
  4159. ; pascal OSErr AuthRemoveFromLocalIdentityQueue(AuthParamBlockPtr paramBlock, Boolean async)
  4160. ;
  4161.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4162.         Macro
  4163.         _AuthRemoveFromLocalIdentityQueue
  4164.             move.w              #$0206,-(sp)
  4165.             dc.w                $AA5E
  4166.         EndM
  4167.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4168.         IMPORT_CFM_FUNCTION AuthRemoveFromLocalIdentityQueue
  4169.     ENDIF
  4170.  
  4171. ;
  4172. ; pascal OSErr AuthSetupLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4173. ;
  4174.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4175.         Macro
  4176.         _AuthSetupLocalIdentity
  4177.             move.w              #$0216,-(sp)
  4178.             dc.w                $AA5E
  4179.         EndM
  4180.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4181.         IMPORT_CFM_FUNCTION AuthSetupLocalIdentity
  4182.     ENDIF
  4183.  
  4184. ;
  4185. ; pascal OSErr AuthChangeLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4186. ;
  4187.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4188.         Macro
  4189.         _AuthChangeLocalIdentity
  4190.             move.w              #$0217,-(sp)
  4191.             dc.w                $AA5E
  4192.         EndM
  4193.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4194.         IMPORT_CFM_FUNCTION AuthChangeLocalIdentity
  4195.     ENDIF
  4196.  
  4197. ;
  4198. ; pascal OSErr AuthRemoveLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4199. ;
  4200.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4201.         Macro
  4202.         _AuthRemoveLocalIdentity
  4203.             move.w              #$0218,-(sp)
  4204.             dc.w                $AA5E
  4205.         EndM
  4206.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4207.         IMPORT_CFM_FUNCTION AuthRemoveLocalIdentity
  4208.     ENDIF
  4209.  
  4210. ;
  4211. ; pascal OSErr DirAddRecord(DirParamBlockPtr paramBlock, Boolean async)
  4212. ;
  4213.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4214.         Macro
  4215.         _DirAddRecord
  4216.             move.w              #$0109,-(sp)
  4217.             dc.w                $AA5E
  4218.         EndM
  4219.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4220.         IMPORT_CFM_FUNCTION DirAddRecord
  4221.     ENDIF
  4222.  
  4223. ;
  4224. ; pascal OSErr DirDeleteRecord(DirParamBlockPtr paramBlock, Boolean async)
  4225. ;
  4226.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4227.         Macro
  4228.         _DirDeleteRecord
  4229.             move.w              #$010A,-(sp)
  4230.             dc.w                $AA5E
  4231.         EndM
  4232.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4233.         IMPORT_CFM_FUNCTION DirDeleteRecord
  4234.     ENDIF
  4235.  
  4236. ;
  4237. ; pascal OSErr DirEnumerateGet(DirParamBlockPtr paramBlock, Boolean async)
  4238. ;
  4239.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4240.         Macro
  4241.         _DirEnumerateGet
  4242.             move.w              #$0111,-(sp)
  4243.             dc.w                $AA5E
  4244.         EndM
  4245.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4246.         IMPORT_CFM_FUNCTION DirEnumerateGet
  4247.     ENDIF
  4248.  
  4249. ;
  4250. ; pascal OSErr DirEnumerateParse(DirParamBlockPtr paramBlock, Boolean async)
  4251. ;
  4252.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4253.         Macro
  4254.         _DirEnumerateParse
  4255.             move.w              #$0101,-(sp)
  4256.             dc.w                $AA5E
  4257.         EndM
  4258.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4259.         IMPORT_CFM_FUNCTION DirEnumerateParse
  4260.     ENDIF
  4261.  
  4262. ;
  4263. ; pascal OSErr DirFindRecordGet(DirParamBlockPtr paramBlock, Boolean async)
  4264. ;
  4265.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4266.         Macro
  4267.         _DirFindRecordGet
  4268.             move.w              #$0140,-(sp)
  4269.             dc.w                $AA5E
  4270.         EndM
  4271.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4272.         IMPORT_CFM_FUNCTION DirFindRecordGet
  4273.     ENDIF
  4274.  
  4275. ;
  4276. ; pascal OSErr DirFindRecordParse(DirParamBlockPtr paramBlock, Boolean async)
  4277. ;
  4278.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4279.         Macro
  4280.         _DirFindRecordParse
  4281.             move.w              #$0141,-(sp)
  4282.             dc.w                $AA5E
  4283.         EndM
  4284.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4285.         IMPORT_CFM_FUNCTION DirFindRecordParse
  4286.     ENDIF
  4287.  
  4288. ;
  4289. ; pascal OSErr DirLookupGet(DirParamBlockPtr paramBlock, Boolean async)
  4290. ;
  4291.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4292.         Macro
  4293.         _DirLookupGet
  4294.             move.w              #$0117,-(sp)
  4295.             dc.w                $AA5E
  4296.         EndM
  4297.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4298.         IMPORT_CFM_FUNCTION DirLookupGet
  4299.     ENDIF
  4300.  
  4301. ;
  4302. ; pascal OSErr DirLookupParse(DirParamBlockPtr paramBlock, Boolean async)
  4303. ;
  4304.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4305.         Macro
  4306.         _DirLookupParse
  4307.             move.w              #$0102,-(sp)
  4308.             dc.w                $AA5E
  4309.         EndM
  4310.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4311.         IMPORT_CFM_FUNCTION DirLookupParse
  4312.     ENDIF
  4313.  
  4314. ;
  4315. ; pascal OSErr DirAddAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4316. ;
  4317.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4318.         Macro
  4319.         _DirAddAttributeValue
  4320.             move.w              #$010B,-(sp)
  4321.             dc.w                $AA5E
  4322.         EndM
  4323.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4324.         IMPORT_CFM_FUNCTION DirAddAttributeValue
  4325.     ENDIF
  4326.  
  4327. ;
  4328. ; pascal OSErr DirDeleteAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4329. ;
  4330.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4331.         Macro
  4332.         _DirDeleteAttributeValue
  4333.             move.w              #$010C,-(sp)
  4334.             dc.w                $AA5E
  4335.         EndM
  4336.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4337.         IMPORT_CFM_FUNCTION DirDeleteAttributeValue
  4338.     ENDIF
  4339.  
  4340. ;
  4341. ; pascal OSErr DirDeleteAttributeType(DirParamBlockPtr paramBlock, Boolean async)
  4342. ;
  4343.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4344.         Macro
  4345.         _DirDeleteAttributeType
  4346.             move.w              #$0130,-(sp)
  4347.             dc.w                $AA5E
  4348.         EndM
  4349.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4350.         IMPORT_CFM_FUNCTION DirDeleteAttributeType
  4351.     ENDIF
  4352.  
  4353. ;
  4354. ; pascal OSErr DirChangeAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4355. ;
  4356.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4357.         Macro
  4358.         _DirChangeAttributeValue
  4359.             move.w              #$010D,-(sp)
  4360.             dc.w                $AA5E
  4361.         EndM
  4362.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4363.         IMPORT_CFM_FUNCTION DirChangeAttributeValue
  4364.     ENDIF
  4365.  
  4366. ;
  4367. ; pascal OSErr DirVerifyAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4368. ;
  4369.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4370.         Macro
  4371.         _DirVerifyAttributeValue
  4372.             move.w              #$010E,-(sp)
  4373.             dc.w                $AA5E
  4374.         EndM
  4375.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4376.         IMPORT_CFM_FUNCTION DirVerifyAttributeValue
  4377.     ENDIF
  4378.  
  4379. ;
  4380. ; pascal OSErr DirFindValue(DirParamBlockPtr paramBlock, Boolean async)
  4381. ;
  4382.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4383.         Macro
  4384.         _DirFindValue
  4385.             move.w              #$0126,-(sp)
  4386.             dc.w                $AA5E
  4387.         EndM
  4388.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4389.         IMPORT_CFM_FUNCTION DirFindValue
  4390.     ENDIF
  4391.  
  4392. ;
  4393. ; pascal OSErr DirEnumerateAttributeTypesGet(DirParamBlockPtr paramBlock, Boolean async)
  4394. ;
  4395.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4396.         Macro
  4397.         _DirEnumerateAttributeTypesGet
  4398.             move.w              #$0112,-(sp)
  4399.             dc.w                $AA5E
  4400.         EndM
  4401.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4402.         IMPORT_CFM_FUNCTION DirEnumerateAttributeTypesGet
  4403.     ENDIF
  4404.  
  4405. ;
  4406. ; pascal OSErr DirEnumerateAttributeTypesParse(DirParamBlockPtr paramBlock, Boolean async)
  4407. ;
  4408.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4409.         Macro
  4410.         _DirEnumerateAttributeTypesParse
  4411.             move.w              #$0103,-(sp)
  4412.             dc.w                $AA5E
  4413.         EndM
  4414.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4415.         IMPORT_CFM_FUNCTION DirEnumerateAttributeTypesParse
  4416.     ENDIF
  4417.  
  4418. ;
  4419. ; pascal OSErr DirAddPseudonym(DirParamBlockPtr paramBlock, Boolean async)
  4420. ;
  4421.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4422.         Macro
  4423.         _DirAddPseudonym
  4424.             move.w              #$010F,-(sp)
  4425.             dc.w                $AA5E
  4426.         EndM
  4427.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4428.         IMPORT_CFM_FUNCTION DirAddPseudonym
  4429.     ENDIF
  4430.  
  4431. ;
  4432. ; pascal OSErr DirDeletePseudonym(DirParamBlockPtr paramBlock, Boolean async)
  4433. ;
  4434.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4435.         Macro
  4436.         _DirDeletePseudonym
  4437.             move.w              #$0110,-(sp)
  4438.             dc.w                $AA5E
  4439.         EndM
  4440.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4441.         IMPORT_CFM_FUNCTION DirDeletePseudonym
  4442.     ENDIF
  4443.  
  4444. ;
  4445. ; pascal OSErr DirAddAlias(DirParamBlockPtr paramBlock, Boolean async)
  4446. ;
  4447.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4448.         Macro
  4449.         _DirAddAlias
  4450.             move.w              #$011C,-(sp)
  4451.             dc.w                $AA5E
  4452.         EndM
  4453.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4454.         IMPORT_CFM_FUNCTION DirAddAlias
  4455.     ENDIF
  4456.  
  4457. ;
  4458. ; pascal OSErr DirEnumeratePseudonymGet(DirParamBlockPtr paramBlock, Boolean async)
  4459. ;
  4460.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4461.         Macro
  4462.         _DirEnumeratePseudonymGet
  4463.             move.w              #$0113,-(sp)
  4464.             dc.w                $AA5E
  4465.         EndM
  4466.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4467.         IMPORT_CFM_FUNCTION DirEnumeratePseudonymGet
  4468.     ENDIF
  4469.  
  4470. ;
  4471. ; pascal OSErr DirEnumeratePseudonymParse(DirParamBlockPtr paramBlock, Boolean async)
  4472. ;
  4473.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4474.         Macro
  4475.         _DirEnumeratePseudonymParse
  4476.             move.w              #$0104,-(sp)
  4477.             dc.w                $AA5E
  4478.         EndM
  4479.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4480.         IMPORT_CFM_FUNCTION DirEnumeratePseudonymParse
  4481.     ENDIF
  4482.  
  4483. ;
  4484. ; pascal OSErr DirGetNameAndType(DirParamBlockPtr paramBlock, Boolean async)
  4485. ;
  4486.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4487.         Macro
  4488.         _DirGetNameAndType
  4489.             move.w              #$0114,-(sp)
  4490.             dc.w                $AA5E
  4491.         EndM
  4492.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4493.         IMPORT_CFM_FUNCTION DirGetNameAndType
  4494.     ENDIF
  4495.  
  4496. ;
  4497. ; pascal OSErr DirSetNameAndType(DirParamBlockPtr paramBlock, Boolean async)
  4498. ;
  4499.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4500.         Macro
  4501.         _DirSetNameAndType
  4502.             move.w              #$0115,-(sp)
  4503.             dc.w                $AA5E
  4504.         EndM
  4505.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4506.         IMPORT_CFM_FUNCTION DirSetNameAndType
  4507.     ENDIF
  4508.  
  4509. ;
  4510. ; pascal OSErr DirGetRecordMetaInfo(DirParamBlockPtr paramBlock, Boolean async)
  4511. ;
  4512.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4513.         Macro
  4514.         _DirGetRecordMetaInfo
  4515.             move.w              #$0116,-(sp)
  4516.             dc.w                $AA5E
  4517.         EndM
  4518.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4519.         IMPORT_CFM_FUNCTION DirGetRecordMetaInfo
  4520.     ENDIF
  4521.  
  4522. ;
  4523. ; pascal OSErr DirGetDNodeMetaInfo(DirParamBlockPtr paramBlock, Boolean async)
  4524. ;
  4525.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4526.         Macro
  4527.         _DirGetDNodeMetaInfo
  4528.             move.w              #$0118,-(sp)
  4529.             dc.w                $AA5E
  4530.         EndM
  4531.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4532.         IMPORT_CFM_FUNCTION DirGetDNodeMetaInfo
  4533.     ENDIF
  4534.  
  4535. ;
  4536. ; pascal OSErr DirGetDirectoryInfo(DirParamBlockPtr paramBlock, Boolean async)
  4537. ;
  4538.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4539.         Macro
  4540.         _DirGetDirectoryInfo
  4541.             move.w              #$0119,-(sp)
  4542.             dc.w                $AA5E
  4543.         EndM
  4544.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4545.         IMPORT_CFM_FUNCTION DirGetDirectoryInfo
  4546.     ENDIF
  4547.  
  4548. ;
  4549. ; pascal OSErr DirGetDNodeAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4550. ;
  4551.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4552.         Macro
  4553.         _DirGetDNodeAccessControlGet
  4554.             move.w              #$012A,-(sp)
  4555.             dc.w                $AA5E
  4556.         EndM
  4557.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4558.         IMPORT_CFM_FUNCTION DirGetDNodeAccessControlGet
  4559.     ENDIF
  4560.  
  4561. ;
  4562. ; pascal OSErr DirGetDNodeAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4563. ;
  4564.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4565.         Macro
  4566.         _DirGetDNodeAccessControlParse
  4567.             move.w              #$012F,-(sp)
  4568.             dc.w                $AA5E
  4569.         EndM
  4570.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4571.         IMPORT_CFM_FUNCTION DirGetDNodeAccessControlParse
  4572.     ENDIF
  4573.  
  4574. ;
  4575. ; pascal OSErr DirGetRecordAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4576. ;
  4577.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4578.         Macro
  4579.         _DirGetRecordAccessControlGet
  4580.             move.w              #$012C,-(sp)
  4581.             dc.w                $AA5E
  4582.         EndM
  4583.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4584.         IMPORT_CFM_FUNCTION DirGetRecordAccessControlGet
  4585.     ENDIF
  4586.  
  4587. ;
  4588. ; pascal OSErr DirGetRecordAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4589. ;
  4590.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4591.         Macro
  4592.         _DirGetRecordAccessControlParse
  4593.             move.w              #$0134,-(sp)
  4594.             dc.w                $AA5E
  4595.         EndM
  4596.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4597.         IMPORT_CFM_FUNCTION DirGetRecordAccessControlParse
  4598.     ENDIF
  4599.  
  4600. ;
  4601. ; pascal OSErr DirGetAttributeAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4602. ;
  4603.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4604.         Macro
  4605.         _DirGetAttributeAccessControlGet
  4606.             move.w              #$012E,-(sp)
  4607.             dc.w                $AA5E
  4608.         EndM
  4609.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4610.         IMPORT_CFM_FUNCTION DirGetAttributeAccessControlGet
  4611.     ENDIF
  4612.  
  4613. ;
  4614. ; pascal OSErr DirGetAttributeAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4615. ;
  4616.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4617.         Macro
  4618.         _DirGetAttributeAccessControlParse
  4619.             move.w              #$0138,-(sp)
  4620.             dc.w                $AA5E
  4621.         EndM
  4622.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4623.         IMPORT_CFM_FUNCTION DirGetAttributeAccessControlParse
  4624.     ENDIF
  4625.  
  4626. ;
  4627. ; pascal OSErr DirEnumerateDirectoriesGet(DirParamBlockPtr paramBlock, Boolean async)
  4628. ;
  4629.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4630.         Macro
  4631.         _DirEnumerateDirectoriesGet
  4632.             move.w              #$011A,-(sp)
  4633.             dc.w                $AA5E
  4634.         EndM
  4635.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4636.         IMPORT_CFM_FUNCTION DirEnumerateDirectoriesGet
  4637.     ENDIF
  4638.  
  4639. ;
  4640. ; pascal OSErr DirEnumerateDirectoriesParse(DirParamBlockPtr paramBlock, Boolean async)
  4641. ;
  4642.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4643.         Macro
  4644.         _DirEnumerateDirectoriesParse
  4645.             move.w              #$0106,-(sp)
  4646.             dc.w                $AA5E
  4647.         EndM
  4648.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4649.         IMPORT_CFM_FUNCTION DirEnumerateDirectoriesParse
  4650.     ENDIF
  4651.  
  4652. ;
  4653. ; pascal OSErr DirMapPathNameToDNodeNumber(DirParamBlockPtr paramBlock, Boolean async)
  4654. ;
  4655.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4656.         Macro
  4657.         _DirMapPathNameToDNodeNumber
  4658.             move.w              #$0122,-(sp)
  4659.             dc.w                $AA5E
  4660.         EndM
  4661.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4662.         IMPORT_CFM_FUNCTION DirMapPathNameToDNodeNumber
  4663.     ENDIF
  4664.  
  4665. ;
  4666. ; pascal OSErr DirMapDNodeNumberToPathName(DirParamBlockPtr paramBlock, Boolean async)
  4667. ;
  4668.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4669.         Macro
  4670.         _DirMapDNodeNumberToPathName
  4671.             move.w              #$0123,-(sp)
  4672.             dc.w                $AA5E
  4673.         EndM
  4674.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4675.         IMPORT_CFM_FUNCTION DirMapDNodeNumberToPathName
  4676.     ENDIF
  4677.  
  4678.  
  4679. ;
  4680. ; pascal OSErr DirGetLocalNetworkSpec(DirParamBlockPtr paramBlock, Boolean async)
  4681. ;
  4682.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4683.         Macro
  4684.         _DirGetLocalNetworkSpec
  4685.             move.w              #$0124,-(sp)
  4686.             dc.w                $AA5E
  4687.         EndM
  4688.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4689.         IMPORT_CFM_FUNCTION DirGetLocalNetworkSpec
  4690.     ENDIF
  4691.  
  4692. ;
  4693. ; pascal OSErr DirGetDNodeInfo(DirParamBlockPtr paramBlock, Boolean async)
  4694. ;
  4695.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4696.         Macro
  4697.         _DirGetDNodeInfo
  4698.             move.w              #$0125,-(sp)
  4699.             dc.w                $AA5E
  4700.         EndM
  4701.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4702.         IMPORT_CFM_FUNCTION DirGetDNodeInfo
  4703.     ENDIF
  4704.  
  4705.  
  4706. ;   Trap Dispatchers for Personal Catalog and CSAM Extensions 
  4707. ;
  4708. ; pascal OSErr DirCreatePersonalDirectory(DirParamBlockPtr paramBlock)
  4709. ;
  4710.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4711.         Macro
  4712.         _DirCreatePersonalDirectory
  4713.             moveq               #0,D0
  4714.             move.b              D0,-(sp)
  4715.             move.w              #$011F,-(sp)
  4716.             dc.w                $AA5E
  4717.         EndM
  4718.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4719.         IMPORT_CFM_FUNCTION DirCreatePersonalDirectory
  4720.     ENDIF
  4721.  
  4722. ;
  4723. ; pascal OSErr DirOpenPersonalDirectory(DirParamBlockPtr paramBlock)
  4724. ;
  4725.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4726.         Macro
  4727.         _DirOpenPersonalDirectory
  4728.             moveq               #0,D0
  4729.             move.b              D0,-(sp)
  4730.             move.w              #$011E,-(sp)
  4731.             dc.w                $AA5E
  4732.         EndM
  4733.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4734.         IMPORT_CFM_FUNCTION DirOpenPersonalDirectory
  4735.     ENDIF
  4736.  
  4737. ;
  4738. ; pascal OSErr DirClosePersonalDirectory(DirParamBlockPtr paramBlock)
  4739. ;
  4740.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4741.         Macro
  4742.         _DirClosePersonalDirectory
  4743.             moveq               #0,D0
  4744.             move.b              D0,-(sp)
  4745.             move.w              #$0131,-(sp)
  4746.             dc.w                $AA5E
  4747.         EndM
  4748.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4749.         IMPORT_CFM_FUNCTION DirClosePersonalDirectory
  4750.     ENDIF
  4751.  
  4752. ;
  4753. ; pascal OSErr DirMakePersonalDirectoryRLI(DirParamBlockPtr paramBlock)
  4754. ;
  4755.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4756.         Macro
  4757.         _DirMakePersonalDirectoryRLI
  4758.             moveq               #0,D0
  4759.             move.b              D0,-(sp)
  4760.             move.w              #$0132,-(sp)
  4761.             dc.w                $AA5E
  4762.         EndM
  4763.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4764.         IMPORT_CFM_FUNCTION DirMakePersonalDirectoryRLI
  4765.     ENDIF
  4766.  
  4767. ;
  4768. ; pascal OSErr DirAddDSAM(DirParamBlockPtr paramBlock)
  4769. ;
  4770.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4771.         Macro
  4772.         _DirAddDSAM
  4773.             moveq               #0,D0
  4774.             move.b              D0,-(sp)
  4775.             move.w              #$011D,-(sp)
  4776.             dc.w                $AA5E
  4777.         EndM
  4778.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4779.         IMPORT_CFM_FUNCTION DirAddDSAM
  4780.     ENDIF
  4781.  
  4782. ;
  4783. ; pascal OSErr DirInstantiateDSAM(DirParamBlockPtr paramBlock)
  4784. ;
  4785.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4786.         Macro
  4787.         _DirInstantiateDSAM
  4788.             moveq               #0,D0
  4789.             move.b              D0,-(sp)
  4790.             move.w              #$0127,-(sp)
  4791.             dc.w                $AA5E
  4792.         EndM
  4793.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4794.         IMPORT_CFM_FUNCTION DirInstantiateDSAM
  4795.     ENDIF
  4796.  
  4797.  
  4798. ;
  4799. ; pascal OSErr DirRemoveDSAM(DirParamBlockPtr paramBlock)
  4800. ;
  4801.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4802.         Macro
  4803.         _DirRemoveDSAM
  4804.             moveq               #0,D0
  4805.             move.b              D0,-(sp)
  4806.             move.w              #$0120,-(sp)
  4807.             dc.w                $AA5E
  4808.         EndM
  4809.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4810.         IMPORT_CFM_FUNCTION DirRemoveDSAM
  4811.     ENDIF
  4812.  
  4813. ;
  4814. ; pascal OSErr DirAddDSAMDirectory(DirParamBlockPtr paramBlock, Boolean async)
  4815. ;
  4816.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4817.         Macro
  4818.         _DirAddDSAMDirectory
  4819.             move.w              #$0133,-(sp)
  4820.             dc.w                $AA5E
  4821.         EndM
  4822.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4823.         IMPORT_CFM_FUNCTION DirAddDSAMDirectory
  4824.     ENDIF
  4825.  
  4826. ;
  4827. ; pascal OSErr DirGetExtendedDirectoriesInfo(DirParamBlockPtr paramBlock, Boolean async)
  4828. ;
  4829.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4830.         Macro
  4831.         _DirGetExtendedDirectoriesInfo
  4832.             move.w              #$0136,-(sp)
  4833.             dc.w                $AA5E
  4834.         EndM
  4835.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4836.         IMPORT_CFM_FUNCTION DirGetExtendedDirectoriesInfo
  4837.     ENDIF
  4838.  
  4839. ;
  4840. ; pascal OSErr DirGetDirectoryIcon(DirParamBlockPtr paramBlock, Boolean async)
  4841. ;
  4842.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4843.         Macro
  4844.         _DirGetDirectoryIcon
  4845.             move.w              #$0121,-(sp)
  4846.             dc.w                $AA5E
  4847.         EndM
  4848.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4849.         IMPORT_CFM_FUNCTION DirGetDirectoryIcon
  4850.     ENDIF
  4851.  
  4852.  
  4853. ;
  4854. ; pascal OSErr DirAddADAPDirectory(DirParamBlockPtr paramBlock, Boolean async)
  4855. ;
  4856.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4857.         Macro
  4858.         _DirAddADAPDirectory
  4859.             move.w              #$0137,-(sp)
  4860.             dc.w                $AA5E
  4861.         EndM
  4862.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4863.         IMPORT_CFM_FUNCTION DirAddADAPDirectory
  4864.     ENDIF
  4865.  
  4866. ;
  4867. ; pascal OSErr DirRemoveDirectory(DirParamBlockPtr paramBlock, Boolean async)
  4868. ;
  4869.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4870.         Macro
  4871.         _DirRemoveDirectory
  4872.             move.w              #$0135,-(sp)
  4873.             dc.w                $AA5E
  4874.         EndM
  4875.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4876.         IMPORT_CFM_FUNCTION DirRemoveDirectory
  4877.     ENDIF
  4878.  
  4879. ;
  4880. ; pascal OSErr DirNetSearchADAPDirectoriesGet(DirParamBlockPtr paramBlock, Boolean async)
  4881. ;
  4882.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4883.         Macro
  4884.         _DirNetSearchADAPDirectoriesGet
  4885.             move.w              #$0108,-(sp)
  4886.             dc.w                $AA5E
  4887.         EndM
  4888.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4889.         IMPORT_CFM_FUNCTION DirNetSearchADAPDirectoriesGet
  4890.     ENDIF
  4891.  
  4892. ;
  4893. ; pascal OSErr DirNetSearchADAPDirectoriesParse(DirParamBlockPtr paramBlock, Boolean async)
  4894. ;
  4895.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4896.         Macro
  4897.         _DirNetSearchADAPDirectoriesParse
  4898.             move.w              #$0105,-(sp)
  4899.             dc.w                $AA5E
  4900.         EndM
  4901.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4902.         IMPORT_CFM_FUNCTION DirNetSearchADAPDirectoriesParse
  4903.     ENDIF
  4904.  
  4905. ;
  4906. ; pascal OSErr DirFindADAPDirectoryByNetSearch(DirParamBlockPtr paramBlock, Boolean async)
  4907. ;
  4908.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4909.         Macro
  4910.         _DirFindADAPDirectoryByNetSearch
  4911.             move.w              #$0107,-(sp)
  4912.             dc.w                $AA5E
  4913.         EndM
  4914.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4915.         IMPORT_CFM_FUNCTION DirFindADAPDirectoryByNetSearch
  4916.     ENDIF
  4917.  
  4918. ;
  4919. ; pascal OSErr DirGetOCESetupRefNum(DirParamBlockPtr paramBlock, Boolean async)
  4920. ;
  4921.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4922.         Macro
  4923.         _DirGetOCESetupRefNum
  4924.             move.w              #$0128,-(sp)
  4925.             dc.w                $AA5E
  4926.         EndM
  4927.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4928.         IMPORT_CFM_FUNCTION DirGetOCESetupRefNum
  4929.     ENDIF
  4930.  
  4931. ;
  4932. ; pascal OSErr DirAbort(DirParamBlockPtr paramBlock)
  4933. ;
  4934.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4935.         Macro
  4936.         _DirAbort
  4937.             moveq               #0,D0
  4938.             move.b              D0,-(sp)
  4939.             move.w              #$011B,-(sp)
  4940.             dc.w                $AA5E
  4941.         EndM
  4942.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4943.         IMPORT_CFM_FUNCTION DirAbort
  4944.     ENDIF
  4945.  
  4946. ;
  4947. ; pascal OSErr OCESetupAddDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4948. ;
  4949.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4950.         Macro
  4951.         _OCESetupAddDirectoryInfo
  4952.             move.w              #$0219,-(sp)
  4953.             dc.w                $AA5E
  4954.         EndM
  4955.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4956.         IMPORT_CFM_FUNCTION OCESetupAddDirectoryInfo
  4957.     ENDIF
  4958.  
  4959. ;
  4960. ; pascal OSErr OCESetupChangeDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4961. ;
  4962.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4963.         Macro
  4964.         _OCESetupChangeDirectoryInfo
  4965.             move.w              #$021B,-(sp)
  4966.             dc.w                $AA5E
  4967.         EndM
  4968.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4969.         IMPORT_CFM_FUNCTION OCESetupChangeDirectoryInfo
  4970.     ENDIF
  4971.  
  4972. ;
  4973. ; pascal OSErr OCESetupRemoveDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4974. ;
  4975.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4976.         Macro
  4977.         _OCESetupRemoveDirectoryInfo
  4978.             move.w              #$020D,-(sp)
  4979.             dc.w                $AA5E
  4980.         EndM
  4981.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4982.         IMPORT_CFM_FUNCTION OCESetupRemoveDirectoryInfo
  4983.     ENDIF
  4984.  
  4985. ;
  4986. ; pascal OSErr OCESetupGetDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4987. ;
  4988.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4989.         Macro
  4990.         _OCESetupGetDirectoryInfo
  4991.             move.w              #$020E,-(sp)
  4992.             dc.w                $AA5E
  4993.         EndM
  4994.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4995.         IMPORT_CFM_FUNCTION OCESetupGetDirectoryInfo
  4996.     ENDIF
  4997.  
  4998.     ENDIF ; __OCEAUTHDIR__ 
  4999.  
  5000.